khantzawhein / laravel-cloudwatch-logs
Laravel Adapter for AWS CloudWatch Which Works
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: 2025-03-13 00:12:22 UTC
README
Installation
composer require pagevamp/laravel-cloudwatch-logs
Example
You can use laravel's default \Log
class to use this
\Log::info('user logged in', ['id' => 123, 'name' => 'Naren']);
Config
Config for logging is defined at config/logging.php
. Add cloudwatch
to the channels
array
'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
],
]
Add correct values to keys in your .env
file. And it should work.
If the role of your AWS EC2 instance has access to Cloudwatch logs, CLOUDWATCH_LOG_KEY
and CLOUDWATCH_LOG_SECRET
need not be defined in your .env
file.
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
.