khantzawhein / laravel-cloudwatch-logs
Laravel 对 AWS CloudWatch 的适配器,可正常工作
0.2.5
2021-03-12 15:38 UTC
Requires
- illuminate/support: ^5.1 || ^6.0 || ^7.0 || ^8.0
- maxbanton/cwh: ^1.1.14 || ^2.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.12 || ^2.16
- mockery/mockery: ^1.2
- phpunit/phpunit: ^6.5 || ^8.4 || ^9.0
This package is auto-updated.
Last update: 2024-09-12 23:06:41 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_KEY
和 CLOUDWATCH_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
。