Правильная настройка протоколирования Celery в Django - как?

Установка celery на нашем производственном сервере кажется более сложной, чем должна быть - и проблема заключается в регистрации. Наша установка выглядит следующим образом:

  • Сервер - Ubuntu 20.04.5 LTS
  • Мы запускаем Django 3.2.8 под собственным пользователем и группой с именем "django"
  • Процесс Celery также имеет своего пользователя и группу под названием "celery".
  • Celery настроен как сервис и регистрируется в /var/log/celery
  • .
  • В celery.py мы установили djangoConf, указывающий на главный settings.py
  • .

При запуске Celery пытается коснуться django-logfile и - не имея на это прав - возвращает ошибку:

Обходной путь: изменить права доступа к файлу журнала, который принадлежит пользователю django, так, чтобы пользователь celery мог писать в него. Но поскольку мы используем вращающийся логгер, это поможет только до создания следующего лог-файла.

Решения, которые мы придумали:

  • Изменение прав доступа к файлу каждый раз, когда создается новый лог-файл: вероятно, худший способ решения этой проблемы
  • .
  • Использование одного и того же пользователя для django- и celery-процессов: пахнет как последнее средство
  • .
  • Создание специфической run-конфигурации в settings.py, перезаписывающей обработчики логирования, как например:
class CeleryProd(Prod):
    def __init__(self) -> None:
        super().__init__()
        self.LOGGING['handlers']={}

Но почему-то каждое из этих решений кажется мне обходным путем. Должен же быть способ сделать это правильно, я думаю? Каков правильный способ сделать это - если он вообще существует?

Вернуться на верх