Ведение журнала Django ломает демон celery

Я использую django 1.3 с django-celery 2.4.2 на производстве.

Поскольку я активировал ведение журнала django в файле django settings.py, демон celery (celeryd) больше не будет работать. Удаление функции ведения журнала устраняет проблему.

Мой код регистрации в settings.py выглядит так:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': True,
    'formatters': {
        'standard': {
            'format': '%(asctime)s [%(levelname)s] %(name)s: %(message)s'
        },
    },
    'handlers': {
        'write_to_log': {
            'level':'WARNING',
            'class':'logging.handlers.RotatingFileHandler',
            'filename': '/path/to/project/logs/errors.log',
            'maxBytes': 1024*1024*5, # 5 MB
            'backupCount': 5,
            'formatter':'standard',
        },
    },
    'loggers': {
        'django': {
            'handlers': ['write_to_log'],
            'level': 'WARNING',
            'propagate': True
        }
    }
}

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

import sys
if not "celeryd" in sys.argv:
    LOGGING = ...

person StryKaizer    schedule 05.01.2012    source источник
comment
определите, что демон сельдерея (celeryd) больше не будет работать. Что происходит, когда вы пытаетесь запустить его?   -  person jpic    schedule 05.01.2012


Ответы (1)


celeryd перехватывает и настраивает корневой регистратор, поэтому может возникнуть конфликт.

Попробуйте отключить перехват журнала сельдерея с помощью:

CELERYD_HIJACK_ROOT_LOGGER=False
person Tickon    schedule 23.02.2012