我正在使用django-celery 2.4.2运行django 1.3。
由于我在django settings.py文件中激活了django日志记录,因此芹菜守护程序(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 = ...
答案 0 :(得分:2)
celeryd劫持并配置根记录器,因此可能存在冲突。
尝试使用以下命令禁用Celery日志劫持:
CELERYD_HIJACK_ROOT_LOGGER=False