如何禁用 Laravel 调度程序日志
How to disable Laravel scheduler logs
我正在将所有 docker 日志重定向到 google stackdriver,但是当我将某些内容重定向到 /dev/null 时,我预计在 stackdriver 中看不到它。
这是我目前的/etc/docker/daemon.json
内容:
{"live-restore": true,"storage-driver": "overlay2","log-driver":"gcplogs"}
这是我要启动的主管程序 horizon:
[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
您指的是不同的应用程序执行不同的日志记录。
- 您发送到 gcplogs 的 docker 日志配置
- 您发送给 /dev/null
的主管日志配置
- 您要发送给 /dev/null
的应用程序调度程序
但是你缺少的是第四个;
- laravel 应用程序...
当您 运行 在单独的 .env 文件中设置命令行调度程序时,最好的选择是覆盖 LOG_CHANNEL
的环境设置。
您可以创建 .env
的副本,例如 .env.scheduler
并将 LOG_CHANNEL
更新为 none
并在 [=] 中配置 none
17=] 文件到这样的东西(未经测试):
'none' => [
'driver' => 'none',
'via' => \Monolog\Handler\NullHandler:class,
],
然后将您的调度程序更新为 运行:
* * * * * cd /path-to-your-project && php artisan schedule:run --env=scheduler >> /dev/null 2>&1
希望对您有所帮助。
所提供的打印屏幕的日志是由 Laravel horizon 而不是我想的那样是由调度员和主管制作的。要抑制 horizon 日志,需要使用 --quiet
标志启动。
我正在将所有 docker 日志重定向到 google stackdriver,但是当我将某些内容重定向到 /dev/null 时,我预计在 stackdriver 中看不到它。
这是我目前的/etc/docker/daemon.json
内容:
{"live-restore": true,"storage-driver": "overlay2","log-driver":"gcplogs"}
这是我要启动的主管程序 horizon:
[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
您指的是不同的应用程序执行不同的日志记录。
- 您发送到 gcplogs 的 docker 日志配置
- 您发送给 /dev/null 的主管日志配置
- 您要发送给 /dev/null 的应用程序调度程序
但是你缺少的是第四个;
- laravel 应用程序...
当您 运行 在单独的 .env 文件中设置命令行调度程序时,最好的选择是覆盖 LOG_CHANNEL
的环境设置。
您可以创建 .env
的副本,例如 .env.scheduler
并将 LOG_CHANNEL
更新为 none
并在 [=] 中配置 none
17=] 文件到这样的东西(未经测试):
'none' => [
'driver' => 'none',
'via' => \Monolog\Handler\NullHandler:class,
],
然后将您的调度程序更新为 运行:
* * * * * cd /path-to-your-project && php artisan schedule:run --env=scheduler >> /dev/null 2>&1
希望对您有所帮助。
所提供的打印屏幕的日志是由 Laravel horizon 而不是我想的那样是由调度员和主管制作的。要抑制 horizon 日志,需要使用 --quiet
标志启动。