betalabs / laravel-cloudwatch-logs
Laravel Adapter for AWS CloudWatch
Requires
- illuminate/support: ^5.1 || ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0
- maxbanton/cwh: ^1.1 || ^2.0.4
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.12
- mockery/mockery: ^1.2
- phpunit/phpunit: ^6.5 || ^7.0 || ^8.0 || ^9.0
This package is auto-updated.
Last update: 2024-12-22 23:02:11 UTC
README
Example
You can use laravel's default \Log
class to use this
\Log::info('user logged in', ['id' => 123, 'name' => 'Naren']);
Configs
Configs for logging is defined at config/logging.php
. Add cloudwatch
to the channels
array
'channels' => [
'cloudwatch' => [
'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'),
],
]
Add correct values to keys in your .env file. And it should work.
Add To Project
Laravel 5.5 or Higher
This package uses laravel's Package discovery. To disable this package by default you can add DISABLE_CLOUDWATCH_LOG=true
to you local .env
file and this package will be disabled.
Laravel 5.4 or Lower
Add to the providers
array in config/app.php
:
Pagevamp\Providers\CloudWatchServiceProvider::class
Concept
This package relies on laravel's listener for log events. This package DOES NOT replace the default logging, instead adds additional log to AWS CLoud Watch. Hence you do not have to change the default log driver to make this work.
Contribution
I have added a pre-commit
hook to run php-cs-fixer
whenever you make a commit. To enable this run sh hooks.sh
.