aviationcode / laravel-ecs-logging
将Laravel日志记录到Elasticsearch ECS格式。
v2.0.0
2021-10-01 10:17 UTC
Requires
- php: ^8.0
- ext-json: *
- illuminate/support: ^8.0
Requires (Dev)
- jenssegers/agent: ^2.6
- orchestra/testbench: ^v6.0
- phpcompatibility/php-compatibility: ^9.3
- phpunit/phpunit: ^9.5
- squizlabs/php_codesniffer: ^3.5
Suggests
- jenssegers/agent: ^2.6
This package is auto-updated.
Last update: 2024-08-29 05:01:02 UTC
README
此包为laravel应用添加ECS(Elastic Common Scheme)格式,允许将标准日志记录到Elasticsearch。
安装
您可以通过composer安装此包
composer require aviationcode/laravel-ecs-logging
建议使用jenssegers/agent
,这将添加用户代理日志支持。
composer require jenssegers/agent
可选地,您可以使用以下命令发布配置文件:
php artisan vendor:publish --provider="AviationCode\EcsLogging\EcsLoggingServiceProvider" --tag="config"
在config/logging.php
中注册日志驱动器
return [ 'channels' => [ // ... Other channels 'ecs' => [ 'driver' => 'ecs', 'path' => storage_path('logs/ecs/laravel.json'), 'level' => 'debug', 'days' => 14, ], ] ];
如果您想将此驱动程序作为唯一的日志方法,请在.env
中定义LOG_CHANNEL=ecs
或在堆栈驱动器中添加ecs
通道。
所有Log::xxx()
调用都将记录到JSON文件中。该文件可以被filebeat抓取,然后发送到您的logstash或Elasticsearch实例。
配置filebeat
将以下内容添加到您的/etc/filebeat/filebeat.yml
文件中
filebeat.inputs: - type: log enabled: true paths: - /path-to-your-laravel-app/storage/logs/ecs/*.json json: message_key: message keys_under_root: true overwrite_keys: true
用法
事件
事件定义了发生了什么,这可能是某个时间点或持续一定时间。为了记录事件,您可以添加此日志上下文。
Log::info('Password changed for John Doe<john.doe@example.com>', [ 'event' => [ 'action' => 'user-password-change', 'code' => 4648, 'outcome' => \AviationCode\EcsLogging\Types\Event::OUTCOME_SUCCESS, 'type' => 'user', ], ]);
测试
composer test
更新日志
请参阅更新日志以获取有关最近更改的更多信息。
贡献
有关详细信息,请参阅贡献。
安全
如果您发现任何与安全相关的问题,请通过电子邮件ken.andries.1992@gmail.com报告,而不是使用问题跟踪器。
鸣谢
许可
MIT许可(MIT)。请参阅许可文件以获取更多信息。