Django Sellerie Logging Best Practice

Ich versuche, Sellerie Protokollierung der Arbeit mit Django. Ich habe die Protokollierung set-up in settings.py gehen auf die Konsole (das funktioniert so wie ich bin-hosting auf Heroku). An der Spitze der einzelnen module, die ich habe:

import logging
logger = logging.getLogger(__name__)

Und in meinem tasks.py habe ich:

from celery.utils.log import get_task_logger
logger = get_task_logger(__name__)

Das funktioniert auch für die Anmeldung fordert von einer Aufgabe und bekomme ich eine Ausgabe wie diese:

2012-11-13T18:05:38+00:00 app[worker.1]: [2012-11-13 18:05:38,527: INFO/PoolWorker-2] Syc feed is starting

Aber wenn die Aufgabe dann ruft eine Methode in einem anderen Modul, z.B. ein queryset Methode, bekomme ich doppelte Einträge im log, z.B.

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

Ich denke, dass ich verwenden könnte,

CELERY_HIJACK_ROOT_LOGGER = False

einfach die Django Protokollierung aber das hat nicht funktioniert als ich es versucht habe und selbst wenn ich habe es zu arbeiten, ich würde verlieren die "PoolWorker-6" bit, was ich tun soll. (Übrigens, ich kann nicht herausfinden, wie man den Namen der Aufgabe, um die Anzeige in der log-Eintrag von Sellerie, wie die docs scheint zu zeigen, dass Sie es sollten).

Ich vermute, ich bin etwas fehlt einfach hier.

InformationsquelleAutor der Frage alan | 2012-11-13

Schreibe einen Kommentar