2014-09-26 52 views
1

我有这种情况。我有一个使用python logger登录到日志文件的芹菜任务。但是,当我运行芹菜工时,我可以在屏幕上看到日志消息。它被写入日志文件,但我的屏幕上也有大量消息。如何禁用芹菜工作者的工作日志输出?

当我把芹菜放在supervisord中时会出现问题。我设置了std_out路径和std_err路径,但所有的工作日志消息都被写入std_err日志文件而不是std_out日志文件。通过这种方式,我无法在std_err中获得真正的错误消息,并且日志消息也是多余的,因为它无论如何都被写入应用程序日志文件。

我试着在启动芹菜工人时设置loglevel,但似乎没有任何东西阻止工作人员将日志消息刷新到在supervisord中运行的屏幕上,并将其写入std_err。

这里是我的上司的conf文件

[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 

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

+0

同样的问题在这里 – 2014-11-03 18:46:07

回答

3

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

例如:

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

如果您正在处理与自己的记录都芹菜日志消息,但要启动的错误消息去一个特定的日志我做的:

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

这将停止所有消息发送到stdout