Выходные журналы Supervisord / Celery

Я использую Supervisor для управления сельдереем. Файл конфигурации супервизора для celery содержит следующие 2 записи:

stdout_logfile = /var/log/supervisor/celery.log
stderr_logfile = /var/log/supervisor/celery_err.log

Что меня смущает, так это то, что хотя Celery работает исправно и все задачи успешно выполняются, они все пишутся в celery_err.log. Я думал, что это будет только для ошибок. Файл celery.log показывает только обычную информацию о запуске сельдерея. Правильно ли записывает успешное завершение задачи в журнал ошибок?

Примечание. Определенно задачи выполняются успешно (отправка электронных писем, создание записей в базе данных и т. д.).


person RunLoop    schedule 22.07.2015    source источник


Ответы (3)



Правильно ли записывает успешное завершение задачи в журнал ошибок?

Нет, это не так. У меня такие же настройки, и ведение журнала работает нормально.

celery.log содержит информацию о задаче

[2015-07-23 11:40:07,066: INFO/MainProcess] Received task: foo[b5a6e0e8-1027-4005-b2f6-1ea032c73d34]
[2015-07-23 11:40:07,494: INFO/MainProcess] Task foo[b5a6e0e8-1027-4005-b2f6-1ea032c73d34] succeeded in 0.424549156s: 1

celery_err.log содержит несколько предупреждений/ошибок. Попробуйте перезапустить процесс супервизора.

person ChillarAnand    schedule 23.07.2015

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

В вашем файле супервизора вы можете отключить это, установив переменную среды PYTHONUNBUFFERED, см. Ниже мой пример файла супервизора Django.

[program:celery-myapp]
environment=DJANGO_SETTINGS_MODULE="myapp.settings.production",PYTHONUNBUFFERED=1
command=/home/me/.virtualenvs/myapp/bin/celery -A myapp worker -B -l DEBUG
directory=/home/me/www/saleor
user=me

stdout_logfile=/home/me/www/myapp/log/supervisor-celery.log
stderr_logfile=/home/me/www/myapp/log/supervisor-celery-err.log
autostart=true
autorestart=true
startsecs=10
person Dr Manhattan    schedule 04.02.2020