Melhor Prática de Logging do Django Aipo
Estou tentando fazer o logging do Celery trabalhar comDjango
. Eu tenho logging set-up emsettings.py
para ir para o console (que funciona bem como eu estou hospedando emHeroku
). No topo de cada módulo, tenho:
import logging
logger = logging.getLogger(__name__)
E no meu tasks.py eu tenho:
from celery.utils.log import get_task_logger
logger = get_task_logger(__name__)
Isso funciona bem para o registro de chamadas de uma tarefa e recebo uma saída assim:
2012-11-13T18:05:38+00:00 app[worker.1]: [2012-11-13 18:05:38,527: INFO/PoolWorker-2] Syc feed is starting
Mas se essa tarefa chamar um método em outro módulo, por exemplo umaqueryset
método, recebo entradas de log duplicadas, por exemplo
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
Acho que poderia usar
CELERY_HIJACK_ROOT_LOGGER = False
apenas usar oDjango
log, mas isso não funcionou quando eu tentei e mesmo se eu fiz isso funcionar, eu perderia o"PoolWorker-6"
bit que eu quero. (Incidentalmente, não consigo descobrir como obter o nome da tarefa para exibir na entrada de log do Aipo, comoos docs parece indicar que deveria).
Eu suspeito que estou sentindo falta de algo simples aqui.