Меньше регистрации задач Celery - PullRequest
0 голосов
/ 21 апреля 2020

Мы используем Celery для управления задачами в нашем приложении Python Django.
Мы также используем Django structlog для сообщений журнала, напечатанных Celery.
Мы принимаем эти сообщения в ElasticSearch через Logsta sh, и заметил, что подавляющее большинство сообщений, которые мы получаем, это 2:

Полученная задача:% s

Задача% (имя) s [% (id) s] выполнена успешно в% (время выполнения) ss:% (return_value) s

Celery создает дамп с уровнем ведения журнала INFO .
Есть ли способ изменить только эти сообщения на DEBUG level?
Так что мы по-прежнему можем запускать сельдерей с -l INFO и видеть другие INFO сообщения, но не эти?

Обновление

Для 2-го сообщения журнала.

После быстрого чтения:

Без особых знаний о сельдерее, Django и structlog, что-то вроде этой работы?

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

1 Ответ

1 голос
/ 21 апреля 2020

Мне удалось проигнорировать только эти два сообщения:

init .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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...