2012-01-05 3 views
0

Я бегу django 1.3 с django-celery 2.4.2 на производстве.Django logging ломает демона сельдерея

Поскольку я активировал регистрацию django в файле настроек django settings.py, демона сельдерея (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 
     } 
    } 
} 

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

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

определить "сельдерей демон (celeryd) обыкновение работать больше". Что происходит, когда вы пытаетесь запустить его? – jpic

ответ

2

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

Попробуйте отключить журнал Hijack сельдерей с:

CELERYD_HIJACK_ROOT_LOGGER=False 
Смежные вопросы