2012-01-05 10 views
0

프로덕션 환경에서 django 1.3을 django-celery 2.4.2와 함께 실행하고 있습니다.장고 로깅이 샐러리 데몬을 깨뜨림

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 
     } 
    } 
} 

편집 : 내가 문제를 fixxes 로깅 사전, 앞에 다음 코드를 추가했다. 누구든지 더 깨끗한 해결책을 가지고 있다면, 듣고 싶습니다.

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

"는 셀러리 데몬 (celeryd가) 더 이상 실행 못해"정의

봅니다와 셀러리 로그 공중 납치를 비활성화합니다. 당신이 그것을 실행하려고하면 어떻게됩니까? – jpic

답변

2

celeryd은 탈취 및 루트 로거를 구성, 그래서 충돌이있을 수 있습니다.

CELERYD_HIJACK_ROOT_LOGGER=False 
관련 문제