Как включить ротацию файлов журнала для celeryd с djcelery?
У меня есть настройки в моем файле конфигурации сельдерея:
- CELERYD_LOG_DEBUG = 'FALSE'
- CELERYD_LOG_FILE = г '/вар/журнал/сельдерей/celeryd.log'
- CELERYD_LOG_LEVEL = "ОШИБКА"
Я просмотрел файл настроек сельдерея, и нет опций указать ограничение размера файла журнала в конфигурации. Даже код выглядит как его использование StreamHandler вместо класса RotationHandler. Любые подсказки/подсказки?
Спасибо.
Ответы
Ответ 1
Для вращения журнала на Ubuntu, если у вас есть журнал регистрации сельдерея /var/log/celery/
celeryd.log вы можете использовать конфигурацию, подобную приведенной выше.
еженедельное вращение журнала с помощью /etc/logrotate.d/.
/var/log/celery/*.log {
weekly
missingok
rotate 52
compress
delaycompress
notifempty
copytruncate
}
Ответ 2
Попробуйте использовать [WatchedFileHandler][1]
. Он замечает, что файл был усечен или изменен в противном случае и снова откроет файл. Обратите внимание, что вы должны установить CELERY_HIJACK_ROOT_LOGGER= False, а затем настроить этот журнал самостоятельно и самостоятельно выполнить logging.getLogger('custom_logger') внутри задач. См. этот пост о том, как встроенная каротажная система Celery не является гибкой и для мелкозернистого управления.