Python芹菜 - 忽略loglevel INFO的工人

时间:2013-12-10 14:03:25

标签: python django logging celery django-celery

我正在使用以下命令:

  

芹菜工人-l info -A django_app --concurrency = 10 --autoreload

但是DEBUG日志仍在涌现,使用-l warning--logfile时也是如此

enter image description here


知道为什么Celery会忽略日志设置吗?


进一步详情:

日志来自Pythonsuds,它使用DEBUG输出到记录器。

2 个答案:

答案 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,
})