khantzawhein/laravel-cloudwatch-logs

Laravel 对 AWS CloudWatch 的适配器,可正常工作

0.2.5 2021-03-12 15:38 UTC

README

安装

composer require pagevamp/laravel-cloudwatch-logs

示例

您可以使用 Laravel 的默认 \Log 类来使用此功能

\Log::info('用户已登录', ['id' => 123, 'name' => 'Naren']);

配置

日志配置定义在 config/logging.php。将 cloudwatch 添加到 channels 数组中

'channels' =>  [
    'cloudwatch' => [
            'driver' => 'custom',
            'name' => env('CLOUDWATCH_LOG_NAME', ''),
            'region' => env('CLOUDWATCH_LOG_REGION', ''),
            'credentials' => [
                'key' => env('CLOUDWATCH_LOG_KEY', ''),
                'secret' => env('CLOUDWATCH_LOG_SECRET', '')
            ],
            'stream_name' => env('CLOUDWATCH_LOG_STREAM_NAME', 'laravel_app'),
            'retention' => env('CLOUDWATCH_LOG_RETENTION_DAYS', 14),
            'group_name' => env('CLOUDWATCH_LOG_GROUP_NAME', 'laravel_app'),
            'version' => env('CLOUDWATCH_LOG_VERSION', 'latest'),
            'formatter' => \Monolog\Formatter\JsonFormatter::class,
            'disabled' => env('DISABLE_CLOUDWATCH_LOG', false),
            'via' => \Pagevamp\Logger::class
        ],
]

将正确的值添加到 .env 文件中的键。然后它应该可以工作。

如果您的 AWS EC2 实例的角色有权访问 Cloudwatch 日志,则无需在 .env 文件中定义 CLOUDWATCH_LOG_KEYCLOUDWATCH_LOG_SECRET

添加到项目

Laravel 5.5 或更高版本

此包使用 Laravel 的 包发现。要默认禁用此包,可以将 DISABLE_CLOUDWATCH_LOG=true 添加到您的本地 .env 文件中,然后此包将被禁用。

Laravel 5.4 或更低版本

providers 数组中的内容添加到 config/app.php

Pagevamp\Providers\CloudWatchServiceProvider::class

概念

此包依赖于 Laravel 的日志事件监听器。此包不会替换默认的日志,而是将额外的日志添加到 AWS Cloud Watch。因此,您无需更改默认日志驱动即可使此功能正常工作。

贡献

我已经添加了一个 pre-commit 钩子,在您提交时运行 php-cs-fixer。要启用此功能,请运行 sh hooks.sh