7

我的 Celery 日志始终会截断(不是很长)长错误消息,如下所示:

[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...

不用说,这消除了一半的日志记录目的。我怎样才能阻止这种情况发生?

我在linux上用django-celery(通过django-supervisor和supervisor)运行celery。

4

2 回答 2

1

不幸的是,默认情况下,Celery 会截断消息。

从版本3.1.73.1.9似乎可以通过修补模块的全局来调整此限制:

import celery.worker.job

celery.worker.job.RESULT_MAXLEN = 1048576  # 1 Mib
于 2016-12-13T09:43:24.430 回答
0

设计返回的任务应该用于代码中的进一步处理,这就是为什么开发人员可能会自由地截断日志,也因为返回可能是相当大的详细结果,并且可能使日志信息输出不可读。当然,我可能是错的,但自从我与 Celery 合作以来,我总是发现这个逻辑是正确的,并且从未打扰过我。在您的情况下,我认为在返回之前使用 logger.info 记录消息是有意义的(不会被截断),并且如果您返回的消息实际上不需要进一步处理,而仅用于记录目的,那就不要返回任何值。

于 2014-01-03T09:33:32.613 回答