【发布时间】:2025-12-31 23:10:02
【问题描述】:
我在 docker 容器中使用 laravel 5.7。 我的目标是将错误日志直接写入 stderr 而不是 laravel.log
logging.php
<?php
return [
'default' => env('LOG_CHANNEL', 'stack'),
'channels' => [
'stack' => [
'driver' => 'stack',
'channels' => ['stderr'], //before it was stderr
],
'single' => [
'driver' => 'single',
'path' => storage_path('logs/laravel.log'),
'level' => 'error',
],
//...
'stderr' => [
'driver' => 'monolog',
'handler' => StreamHandler::class,
'level' => 'error',
'with' => [
'stream' => 'php://stderr',
],
],
//...
],
];
日志目标本身正在工作 - laravel.log 是空的 - 但似乎日志级别被忽略了。在 docker 日志中,我还收到了调试消息
docker-compose logs --tail=100 container
...
ESC[36mcontainer_1 |ESC[0m [2019-07-01 09:57:51] local.DEBUG: ...
...
如果我只是将 channels (stack) 从 stderr 更改为 single,则日志(但只有错误级别)会正确附加到 laravel.log
【问题讨论】: