Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何禁用芹菜工人的工人日志输出?_Python_Logging_Ubuntu 12.04_Celery_Supervisord - Fatal编程技术网

Python 如何禁用芹菜工人的工人日志输出?

Python 如何禁用芹菜工人的工人日志输出?,python,logging,ubuntu-12.04,celery,supervisord,Python,Logging,Ubuntu 12.04,Celery,Supervisord,我这里有个情况。我有一个芹菜任务,它使用python logger来记录日志文件。然而,当我运行芹菜工人时,我可以在屏幕上看到日志消息。它会写入日志文件,但我的屏幕上也有大量的消息 当我把芹菜放进碗里时,问题就出现了。我已经设置了std_out path和std_err path,但是所有工作日志消息都将写入std_err日志文件,而不是std_out日志文件。这样,我就无法在std_err中获得真正的错误消息,而且日志消息是多余的,因为它无论如何都会写入应用程序日志文件 我尝试在启动芹菜工人时

我这里有个情况。我有一个芹菜任务,它使用python logger来记录日志文件。然而,当我运行芹菜工人时,我可以在屏幕上看到日志消息。它会写入日志文件,但我的屏幕上也有大量的消息

当我把芹菜放进碗里时,问题就出现了。我已经设置了std_out path和std_err path,但是所有工作日志消息都将写入std_err日志文件,而不是std_out日志文件。这样,我就无法在std_err中获得真正的错误消息,而且日志消息是多余的,因为它无论如何都会写入应用程序日志文件

我尝试在启动芹菜工人时设置日志级别,但似乎没有什么能阻止工人将日志消息刷新到屏幕上,当在supervisord中运行时,日志消息会写入std_err

这是我的文件

[program:celery_worker]
command=celery -A CeleryWorker worker --concurrency=4 -l error
directory=/home/swaroop/codebase/src
stdout_logfile=/home/swaroop/codebase/logs/clLogger.log
stderr_logfile=/home/swaroop/codebase/logs/clerrorLogger.log
autostart=true
autorestart=true

有人能解决这个问题吗?任何将真正的芹菜错误消息与应用程序日志消息分离的技术都会有所帮助。

除非您指定芹菜工作者日志文件,否则它将记录到stderr。因此,使用
-f LOGFILE
当您启动工作程序以避免登录到屏幕时

例如:

$celery -A proj worker -f proj.log -l ERROR

如果您使用自己的记录器处理所有芹菜日志消息,但希望启动错误消息进入特定日志,我会:

celery worker --app proj --logfile=/dev/null

这将阻止所有发送到stdout的消息

您或@FelixBöhme解决了吗?