Celery截断日志消息

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(通过supervisor与django-supervisor一起运行celery)。

1
workers/job.py:repr_result()中似乎发生了截断。这将使用maxlen参数,但在调用此方法的位置中,maxlen参数从未被使用 - 所以不幸的是我认为没有办法进行配置 :-( - Lukas Graf
2个回答

1

很遗憾,Celery默认会截断消息。

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

import celery.worker.job

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

0

任务,按设计应该在您的代码中用于进一步处理,这就是为什么开发人员可能采取了截断日志的自由,也因为返回值可能是繁琐的结果,并且可能会使日志信息输出难以阅读。 当然我可能错了,但由于我使用Celery,我始终认为这种逻辑是正确的,从未打扰过我。 在您的情况下,我认为在返回之前使用logger.info记录消息是有意义的(不会被截断),如果您返回的消息实际上不需要进行进一步处理,而只是为了记录目的,那么就不要返回任何值。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接