erloom / logger
为路由创建日志和中间件。
Requires (Dev)
- orchestra/testbench: ^5.0
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更改为dailybeatLOG_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}}