Je vais essayer d'obtenir le Céleri journalisation de travail avec Django
. J'ai journalisation set-up en settings.py
aller à la console (qui fonctionne très bien comme je suis d'hébergement à Heroku
). En haut de chaque module, j'ai:
import logging
logger = logging.getLogger(__name__)
Et dans mon tasks.py, j'ai:
from celery.utils.log import get_task_logger
logger = get_task_logger(__name__)
Cela fonctionne bien pour la journalisation des appels à partir d'une tâche et j'ai sortie comme ceci:
2012-11-13T18:05:38+00:00 app[worker.1]: [2012-11-13 18:05:38,527: INFO/PoolWorker-2] Syc feed is starting
Mais si cette tâche, puis appelle une méthode d'un autre module, par exemple un queryset
méthode, je obtenir un double des entrées de journal, par exemple
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
Je pense que je pourrais utiliser
CELERY_HIJACK_ROOT_LOGGER = False
simplement utiliser l' Django
de journalisation mais cela ne fonctionne pas quand je l'ai essayé et même si j'arrivais à le faire fonctionner, je perdrais l' "PoolWorker-6"
peu qui je veux. (D'ailleurs, je ne peux pas comprendre comment obtenir le nom de la tâche à afficher dans le journal d'entrée de Céleri, que la documentation semble indiquer qu'elle devrait le faire http://docs.celeryproject.org/en/master/configuration.html?highlight=celeryd_task_log_format#std:setting-CELERYD_TASK_LOG_FORMAT).
Je pense que je suis absent quelque chose de simple ici... toute aide serait grandement appréciée.