You can use laravel's default \Log
class to use this
\Log::info('user logged in', ['id' => 123, 'name' => 'Naren']);
Config 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'),
'formatter' => \Monolog\Formatter\JsonFormatter::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.
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.
Add to the providers
array in config/app.php
:
Pagevamp\Providers\CloudWatchServiceProvider::class
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.
I have added a pre-commit
hook to run php-cs-fixer
whenever you make a commit. To enable this run sh hooks.sh
.