我的 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)运行芹菜。
不幸的是,芹菜会默认截断消息是的。
从版本 3.1.7 到 3.1.9,似乎可以通过修补模块的全局来调整此限制:
import celery.worker.job
celery.worker.job.RESULT_MAXLEN = 1048576 # 1 Mib
任务,设计返回,应该用于代码中的进一步处理,这就是为什么开发人员可能可以自由截断日志的原因,也是因为返回可能是相当大的详细结果,并且可能会使日志信息输出不可读。当然,我可能是错的,但自从我与芹菜一起工作以来,我总是发现这个逻辑是正确的,并且从未打扰过我。在您的情况下,我认为在返回之前使用 logger.info 记录消息是有意义的(不会被截断),如果您返回的消息实际上不需要进一步处理,而仅用于日志记录目的只是不返回任何值。