Сельдерей обрезает сообщения журнала

Мой журнал сельдерея последовательно усекает (не очень) длинные сообщения об ошибках, например:

[2012-04-08 04:53:10,084: INFO/MainProcess] Task mainapp.tasks.async_submitter[2df2fe93-156b-4944-9ecf-c55ba53e8aaa] succeeded in 0.190640926361s: 'An error occurred during the submission of... 

Излишне говорить, что это устраняет половину цели регистрации. Как я могу остановить это?

Я использую сельдерей с django-сельдереем (через django-supervisor с супервизором) на linux.

2 Solutions collect form web for “Сельдерей обрезает сообщения журнала”

К сожалению, сельдерей будет обрезать сообщения по умолчанию да.

Начиная с версии 3.1.7 до 3.1.9 , возможно, можно настроить этот предел, исправляя глобальный модуль:

 import celery.worker.job celery.worker.job.RESULT_MAXLEN = 1048576 # 1 Mib 

Задача, возвращаемая по дизайну, должна использоваться для дальнейшей обработки в вашем коде, и поэтому, вероятно, разработчик взял на себя право обрезать журнал, также потому, что возврат может быть довольно большим результатом разработки и может сделать нечитаемый вывод информации журнала. Конечно, я мог ошибаться, но поскольку я работаю с сельдереем, я всегда считал эту логику правильной и никогда меня не беспокоил. В вашем случае я считаю, что имеет смысл регистрировать сообщение непосредственно перед возвратом с помощью logger.info (это не будет усечено), и если сообщение, которое вы возвращаете, на самом деле не требуется для дальнейшей обработки, но только для целей ведения журнала просто не нужно вернуть любое значение.

  • Определить, доступен ли сельдерей / работает
  • Повторные задания с Django-Celery - Django / Celery
  • Задача сельдерея и настройка декоратора
  • Создавайте задачи сельдерея, затем выполняйте синхронно
  • Django-сельдерей: Проходящий запрос Объект работнику
  • Добавьте n задач в очередь сельдерея и дождитесь результатов
  • Процесс CeleryBeat потребляет всю память ОС
  • Как обеспечить задачу Сельдерея - Предотвращение дублирования задач на сельдерей
  • Python - лучший язык программирования в мире.