Я пытаюсь заставить журнал Celery работать с Django
. У меня есть регистрация в settings.py
для перехода на консоль (это отлично работает, поскольку я размещаю на Heroku
). В верхней части каждого модуля у меня есть:
import logging
logger = logging.getLogger(__name__)
И в моих задачах .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
Но если эта задача затем вызывает метод в другом модуле, например. a 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, поскольку docs, кажется, указывает, что это должно быть).
Я подозреваю, что мне не хватает чего-то простого здесь.