ramibadrpro / laravel-ecs-logging
将 Laravel 日志记录到 Elasticsearch ECS 格式。
v2.0.3
2022-05-13 16:14 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 not auto-updated.
Last update: 2024-09-28 03:25:23 UTC
README
此包是 AviationCode\EcsLogging 的分支,试图修复一些bug。
安装
您可以通过 composer 安装此包
composer require ramibadrpro/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
BUGS
- ecs-logs 包内的当前bug
类型静态属性 Aviation Code\Ecs Logging\Tracing\Correlate::$id 在初始化之前不能访问
这是由于在为它们分配值之前尝试访问类型提示的属性,已通过用空值初始化它们来修复
Fork 更新日志
2022/05/13 : 添加了通过配置文件禁用日志文件轮转的选项(使用选项 disable_rotate
)
鸣谢
许可协议
MIT 许可协议 (MIT)。有关更多信息,请参阅 许可文件。