Как отключить вывод рабочего журнала от работника сельдерея?

У меня тут ситуация. У меня есть задача сельдерея, которая использует регистратор python для входа в файл журнала. Однако, когда я запускаю рабочих сельдерея, я вижу сообщения журнала на экране. Это записывается в файлы журнала, но у меня также есть множество сообщений на моем экране.

Проблема возникает, когда я помещаю сельдерей в supervisord. Я установил путь std_out и путь std_err, но все сообщения рабочего журнала записываются в файл журнала 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

У кого-нибудь есть решение этой проблемы? Любая техника для отделения реальных сообщений об ошибках сельдерея от сообщений журнала приложения была бы полезной.


person S. Swaroop    schedule 26.09.2014    source источник
comment
Вы или @FelixBöhme решили это?   -  person Don    schedule 13.11.2019


Ответы (2)


Если вы не укажете файл журнала celery worker, он будет записываться в stderr. Поэтому используйте -f LOGFILE при запуске воркера, чтобы избежать выхода на экран.

Например:

$celery -A proj worker -f proj.log -l ERROR
person niko    schedule 17.04.2015

Если вы обрабатываете все сообщения журнала Celery с помощью собственного регистратора, но хотите, чтобы сообщения об ошибках запуска отправлялись в определенный журнал, я делаю:

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

Это остановит все сообщения, идущие на стандартный вывод

person Ryan Mueller    schedule 14.04.2016