【发布时间】:2014-09-26 11:34:01
【问题描述】:
我这里有个情况。我有一个芹菜任务,它使用 python 记录器记录到日志文件。但是,当我运行 celery workers 时,我可以在屏幕上看到日志消息。它被写入日志文件,但我的屏幕上也有大量消息。
当我将 celery 放入 supervisord 时,问题就出现了。我已经设置了 std_out 路径和 std_err 路径,但是所有工作日志消息都被写入 std_err 日志文件而不是 std_out 日志文件。这样我就无法在 std_err 中获取真正的错误消息,而且日志消息是多余的,因为它无论如何都会被写入应用程序日志文件。
我尝试在启动 celery worker 时设置日志级别,但似乎没有什么能阻止工人将日志消息刷新到屏幕上,当在 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
有人有解决这个问题的办法吗?任何将真正的 celery 错误消息与应用程序日志消息分开的技术都会有所帮助。
【问题讨论】:
-
你或@FelixBöhme 解决了吗?
标签: python logging ubuntu-12.04 celery supervisord