我正在使用以下命令:
芹菜工人-l info -A django_app --concurrency = 10 --autoreload
但是DEBUG日志仍在涌现,使用-l warning
和--logfile
时也是如此
知道为什么Celery会忽略日志设置吗?
进一步详情:
日志来自Python
库suds
,它使用DEBUG输出到记录器。
答案 0 :(得分:6)
我遇到了同样的问题,我决定调整settings.py
内的loglevel:
LOGGING['loggers']['celery'] = {
'handlers': ['console', <etc>],
'level': <LEVEL_YOU_WANT>,
'propagate': True,
}
此外,我决定禁用一些“不感兴趣”的日志:
LOGGING['loggers']['celery.redirected'] = {
'handlers': ['console', <etc>],
'level': <LEVEL_YOU_WANT>,
'propagate': False,
}
for i in ['worker', 'concurrency', 'beat']:
LOGGING['loggers']['celery.' + i] = {
'handlers': [],
'level': 'WARNING',
'propagate': True,
}
for i in ['job', 'consumer', 'mediator', 'control', 'bootsteps']:
LOGGING['loggers']['celery.worker.' + i] = {
'handlers': [],
'level': 'WARNING',
'propagate': True,
}
这样做只会让你看到来自你的任务的日志,而不是Celery的“机器”。
答案 1 :(得分:1)
尝试使用CELERYD_HIJACK_ROOT_LOGGER setting:
celery_instance = Celery('django_app')
celery_instance.add_defaults({
'CELERYD_HIJACK_ROOT_LOGGER': False,
})