如何禁用Laravel Scheduler日志

时间:2019-09-10 13:58:32

标签: laravel docker stackdriver

我将所有docker日志重定向到google stackdriver,但是当我将某些内容重定向到/ dev / null时,我似乎看不到它在stackdriver中。

这是我当前的/etc/docker/daemon.json内容:

{"live-restore": true,"storage-driver": "overlay2","log-driver":"gcplogs"}

这是我的主管计划,旨在开阔眼界:

[program:horizon]
command = php /var/www/artisan horizon
stdout_logfile = /dev/null
stdout_logfile_maxbytes = 0
stderr_logfile = /dev/stderr
stderr_logfile_maxbytes = 0
user = root
autostart = true
autorestart = true
priority = 3000

这就是我所谓的调度程序:

* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1

但是他们仍然发送给了stackdriver

stackdriver

如何禁用此调度程序日志? (只有它们,而不是其余有用的日志)

[编辑]

日志级别将不会更改正在处理的作业的输出。有人要求提供https://github.com/laravel/ideas/issues/1516

2 个答案:

答案 0 :(得分:1)

您指的是执行不同日志记录的不同应用程序。

  1. 您已发送到gcplogs的docker日志配置
  2. 您已发送到/ dev / null的主管日志配置
  3. 您已发送到/ dev / null的应用程序调度程序

但是您缺少的是第四;

  1. laravel应用程序...

为此的最佳选择是在单独的.env文件中运行命令行调度程序时覆盖LOG_CHANNEL的环境设置。

您可以创建.env的副本.env.scheduler,并将LOG_CHANNEL更新为none,并在{{1}中配置none }归档到这样的内容(未经测试):

config/logging.php

然后更新您的调度程序以运行:

'none' => [ 'driver' => 'none', 'via' => \Monolog\Handler\NullHandler:class, ],

希望有帮助。

答案 1 :(得分:1)

所提供的打印屏幕的日志由Laravel Horizo​​n生成,而不是我所想到的调度程序和主管。要禁止显示地平线日志,需要以--quiet标志开始。