我将所有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
如何禁用此调度程序日志? (只有它们,而不是其余有用的日志)
[编辑]
日志级别将不会更改正在处理的作业的输出。有人要求提供https://github.com/laravel/ideas/issues/1516
答案 0 :(得分:1)
您指的是执行不同日志记录的不同应用程序。
但是您缺少的是第四;
为此的最佳选择是在单独的.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 Horizon生成,而不是我所想到的调度程序和主管。要禁止显示地平线日志,需要以--quiet
标志开始。