2014-09-26 84 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