ramibadrpro/laravel-ecs-logging

将 Laravel 日志记录到 Elasticsearch ECS 格式。

v2.0.3 2022-05-13 16:14 UTC

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)。有关更多信息,请参阅 许可文件