【发布时间】:2019-06-19 18:11:38
【问题描述】:
使用普通的 python 记录器,您可以像这样配置格式字符串和日期格式:
{
'format': '%(asctime)s.%(msecs)d [%(process)d] %(levelname)s [%(name)s] %(message)s',
'datefmt': %d/%m/%Y-%H:%M:%S'
}
但我完全找不到任何方法将datefmt 传递给 Celery 任务记录器。这似乎是一个基本的功能,如果它是不可能的,我会感到惊讶。
我得到的最接近的方法是遵循this article 中列出的技术。它的要点是使用after_setup_task_logger 信号来自定义记录器处理程序以传递自定义TaskFormatter。但诀窍是,虽然TaskFormatter 让您传递格式字符串,但它似乎没有任何规定允许您传递datefmt。
Celery github 上的this open issue 似乎证实了这一点。
那么我有什么明显的遗漏吗?无需等待芹菜处理上述问题即可完成的技巧?真的不可能吗?
【问题讨论】:
-
我应该指出,虽然我愿意升级 celery 以解决问题,但我使用的是 4.2.1 版本,并且更喜欢不需要升级的解决方案。