小编dar*_*287的帖子

从EC2实例登录CloudWatch

我的EC2服务器目前正在托管一个网站,该网站将每个注册用户的活动记录在他们自己的本地EC2实例上的单独日志文件中,例如username.log.我正试图找到一种方法,使用PHP SDK将这些事件的日志事件推送到CloudWatch,而不会降低应用程序速度,同时仍然能够为我的网站的每个注册成员维护一个单独的日志文件.

我不能为我的生活弄清楚这一点:

选项1:如何使用CloudWatch SDK 异步登录CloudWatch?我的PHP应用程序表现得非常缓慢,因为每个日志行大约需要100毫秒才能直接推送到CloudWatch.代码示例如下.

选项2:或者,如何在EC2上配置已安装的CloudWatch Agent以简单地OBSERVE我的所有日​​志文件,基本上可以在单独的进程中将它们异步上传到CloudWatch?CloudWatch EC2日志代理需要在您的服务器上提供静态"配置文件"(AWS文档),据我所知,需要提前列出所有日志文件("日志流"),我将无法在服务器启动时预测.有没有办法(即,只是观察目录中的所有日志文件)?配置文件示例如下.

这里欢迎所有想法,但我不希望我的解决方案只是"将所有日志都扔到一个文件中,以便您的日志名称始终可预测".

提前致谢!!!


选项1:通过SDK记录(需要~100ms/logEvent):

// Configuration to use for the CloudWatch client
$sharedConfig = [
    'region'  => 'us-east-1',
    'version' => 'latest',
    'http'    => [
        'verify' => false
    ]
];

// Create a CloudWatch client
$cwClient = new Aws\CloudWatchLogs\CloudWatchLogsClient($sharedConfig);

// DESCRIBE ANY EXISTING LOG STREAMS / FILES
$create_new_stream = true;
$next_sequence_id = "0";
$result = $cwClient->describeLogStreams([
        'Descending' => true,
        'logGroupName' => 'user_logs',
        'LogStreamNamePrefix' => $stream,
]);
// Iterate through the …
Run Code Online (Sandbox Code Playgroud)

php logging asynchronous amazon-web-services amazon-cloudwatch

5
推荐指数
1
解决办法
1052
查看次数

如何在 AWS CloudWatch 中轮换日志?

我正在使用 Amazon CloudWatch Log Agent(AWS 文档)将日志从我的 EC2 实例上传到 CloudWatch 控制台。

对于我在 EC2 上的 CloudWatch Log Agent 配置,我有以下内容:

[general]
state_file = /var/awslogs/state/agent-state  

[applog]
file = /var/www/html/logs/applog.log
log_group_name = MyApp
log_stream_name = applog.log
datetime_format = %Y-%m-%d %H:%M:%S
Run Code Online (Sandbox Code Playgroud)

我的问题是,如何让 applog.log 每天轮换?在 AWS 文档(上面的链接)中,它提到能够配置日志轮换策略,但我找不到任何关于如何实际执行此操作的提及/示例。我试过将 log_stream_name 指定为applog_%Y-%m-%d.log,但它从字面上解释了这一点。

任何正确方向的想法或指示都将非常受欢迎 - 谢谢!

logging amazon-web-services amazon-cloudwatch

5
推荐指数
1
解决办法
8798
查看次数

Electron JS 中关闭/隐藏后台命令窗口?

试图弄清楚如何在自己的进程中运行 Electron,与调用者分开。

我有一个运行小型 ReactJS Web 表单的 Electron 应用程序。当我启动 Electron 时,调用者在我关闭 Electron 窗口之前不会返回,因此迫使我保留这个额外的调用窗口。

启动步骤:

1) Open a new Command Prompt (cmd.exe):    
2) start /b npm.cmd start
Run Code Online (Sandbox Code Playgroud)

当我这样做时,命令提示符会无限期地等待,直到 Electron 窗口关闭。因此,我必须打开两个窗口,这在生产环境中并不理想(我希望用户单击桌面上的 *.bat 文件,只弹出 Electron 窗口;而不是CMD.exe 窗口和 Electron 窗口)。

先感谢您!!!

javascript electron

5
推荐指数
0
解决办法
1009
查看次数