更少的芹菜任务记录

时间:2020-04-21 13:57:36

标签: elasticsearch celery elastic-stack django-celery

我们使用Celery在Python Django应用程序中管理任务。
我们还将Django structlog用于Celery打印的日志消息。
我们通过Logstash将这些消息提取到ElasticSearch中,并注意到我们收到的绝大多数消息是这些2:

已收到任务:%s

任务%{name)s [%{id)s]在%{runtime} ss中成功:%{return_value)s

Celery以 INFO 日志记录级别转储它们。
有什么方法可以将这些消息更改为 DEBUG 级别?
这样我们仍然可以用-l INFO运行celery并查看其他 INFO 消息,但不能查看这些消息吗?

更新

第二条日志消息。

快速阅读以下内容:

在没有足够的Celery,Django和structlog知识的情况下,类似的东西行得通吗?

LOGGING = {
...
'loggers': {
        'celery.app.trace': {
          'handlers': ['null'],
          'propagate': False,
         }
...
}

1 个答案:

答案 0 :(得分:1)

我只能忽略这两个消息:

初始化 .py

import celery
from unittest import mock

app = celery.Celery()


from celery.app import trace
old_info = trace.info
trace.info = mock.Mock()


class MyTask(celery.Task):
    Strategy = '61242484.strategy:my_default'


@app.task(base=MyTask)
def test():
    print("123")


test.apply_async()

strategy.py

from unittest import mock
from celery.worker.strategy import default


def my_default(*args, **kwargs):
    kwargs['info'] = mock.Mock()
    return default(*args, **kwargs)
相关问题