2014-09-26 2 views
1

여기 상황이 있습니다. 파이썬 로거를 사용하여 로그 파일에 기록하는 셀러리 작업이 있습니다. 그러나 셀러리 작업자를 실행할 때 로그 메시지가 화면에 표시됩니다. 그 로그 파일에 기록지고 있지만 또한 내 화면에 많은 메시지가 있습니다.셀러리 작업자의 작업자 로그 출력을 비활성화하는 방법은 무엇입니까?

제가 슈퍼 바이저에 셀러리를두면 문제가 발생합니다. std_out 경로와 std_err 경로를 설정했지만 모든 작업자 로그 메시지가 std_out 로그 파일 대신 std_err 로그 파일에 기록됩니다. 이렇게하면 std_err에 실제 오류 메시지가 표시되지 않고 로그 메시지가 중복되어 어쨌든 응용 프로그램 로그 파일에 기록됩니다.

샐러리 작업자를 시작하는 동안 loglevel을 설정했지만 작업자가 슈퍼 바이저에서 실행할 때 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 

누구든지이 문제에 대한 솔루션을 내 상사의 conf 파일입니다? 응용 프로그램 로그 메시지에서 실제 셀러리 오류 메시지를 분리하는 기법이 유용 할 것입니다.

+0

같은 문제는 여기에 있습니다. –

답변

3

셀러리 작업자 로그 파일을 지정하지 않으면 stderr에 기록됩니다. 따라서 화면에 로깅하지 않도록 작업자를 시작할 때 -f LOGFILE을 사용하십시오.

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

당신이 내가 할 특정 로그를 이동하기 시작 오류 메시지를 자신의 로거 모든 셀러리 로그 메시지를 처리하지만, 원한다면하기 :

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

이 중지됩니다 예를 들어

모든 메시지가 표준 출력으로 변경됩니다.