我正在尝试让 Celery 日志记录与Django
. 我已经登录设置settings.py
进入控制台(在我托管时工作正常Heroku
)。在每个模块的顶部,我有:
import logging
logger = logging.getLogger(__name__)
在我的tasks.py中,我有:
from celery.utils.log import get_task_logger
logger = get_task_logger(__name__)
这适用于记录来自任务的调用,我得到如下输出:
2012-11-13T18:05:38+00:00 app[worker.1]: [2012-11-13 18:05:38,527: INFO/PoolWorker-2] Syc feed is starting
但是,如果该任务然后调用另一个模块中的方法,例如queryset
方法,我会得到重复的日志条目,例如
2012-11-13T18:00:51+00:00 app[worker.1]: [INFO] utils.generic_importers.ftp_processor process(): File xxx.csv already imported. Not downloaded
2012-11-13T18:00:51+00:00 app[worker.1]: [2012-11-13 18:00:51,736: INFO/PoolWorker-6] File xxx.csv already imported. Not downloaded
我想我可以使用
CELERY_HIJACK_ROOT_LOGGER = False
只使用Django
日志记录,但是当我尝试它时这不起作用,即使我确实让它工作,我也会失去"PoolWorker-6"
我想要的位。(顺便说一句,我不知道如何让任务名称显示在 Celery 的日志条目中,因为文档似乎表明它应该这样做)。
我怀疑我在这里遗漏了一些简单的东西。