Django Celery Logging Лучшие практики
Я пытаюсь заставить лесозаготовку работать с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, так какдокументы похоже указывает на то что должен).
Я подозреваю, что упускаю что-то простое здесь.