erloom/logger

为路由创建日志和中间件。

1.2.2 2023-02-20 06:15 UTC

This package is auto-updated.

Last update: 2024-09-20 09:38:39 UTC


README

此包与服务器上的 Filebeat 一起使用,在 Laravel 6.x 及以上版本 中生成日志文件。稍后,日志将被消费到 Logstash 进行日志记录。

此包的功能

  • 使用通道 dailybeat 将 Laravel 日志转换为 JSON 格式
  • 使用通道 monitor 将 Laravel 端点日志转换为 JSON 格式
  • 为通道 monitor 创建新的中间件别名,以在您的 REST API 中实现,中间件别名为 request.log

安装

  • 使用 composer require erloom/logger 安装,之后根据安装说明,您可以分别使用 2 个功能。

更改常规日志为 JSON + 每日格式

  • 要将常规日志更改为 JSON,将您的 LOG_CHANNEL 更改为 dailybeat
    LOG_CHANNEL=dailybeat
    ...
    
  • 稍后,您的日志将在 storage/logs 中生成,格式如下
    
    
  • laravel-2021-03-04.log
  • laravel-2021-03-05.log ...
    with this content :
    

    {"@timestamp":"2021-03-04T11:20:36.053490+00:00","@version":1,"host":"xxx.local","message":"Test","type":"Laravel","channel":"local","level":"ERROR","monolog_level":400}

    
    

记录您的 REST API

  • 要记录端点,该包会自动在您的应用程序中注册名为 request.log 的中间件。您可以在 API 路由中使用它。

    Route::get('/test', function (Request $request) {
      return 'Test';
    })->middleware('request.log');
    
  • 稍后,您的日志将在 storage/logs 中生成,格式如下

    
    
  • monitor-2021-03-04.log
  • monitor-2021-03-05.log ...
    with this content :
    

    {"@timestamp":"2021-10-04T09:37:09.348133+00:00","@version":1,"host":"xxx.local","message":"request_monitor","type":"Laravel","channel":"local","level":"INFO","monolog_level":200,"context":{"url":"YOUR_API_ROUTE","controller":null,"action":"Closure","request_method":"GET","ip_address":"REQUESTER_IP","user_agent":"USER_AGENT","request_body":"","response_status":200,"response_body":"Test","duration":18.95594596862793}}