2015-11-24 24 views
7

Aktualisiert: Es stellt sich heraus, dass dies keine Funktion von Cron ist. Ich bekomme das gleiche Verhalten beim Ausführen des Skripts über die Befehlszeile, wenn es tatsächlich einen Datensatz hat, der verarbeitet und mit ElasticSearch kommuniziert.Für den Logger "elasticsearch.trace" konnten keine Handler gefunden werden


Ich habe einen cron-Job, der einen Python-Skript ausgeführt, das einige Dokumente in einer Instanz Elasticsearch pyelasticsearch zu Index verwendet. Das Skript arbeitet von der Kommandozeile in Ordnung, aber wenn über cron, kommt es zu diesem Fehler:

No handlers could be found for logger "elasticsearch.trace"

Offensichtlich gibt es einige Logging-Konfigurationsproblem, das nur auftaucht, wenn sie unter cron laufen, aber ich bin mir nicht klar, was es ist. Irgendeine Einsicht?

Antwort

7

Ich löste dies, indem ich explizit einen Handler für den elasticsearch.trace Logger konfigurierte, wie ich in examples vom pyelastysearch Repo sah.

Nach pyelasticsearch importieren, einen Handler wie so ein:

tracer = logging.getLogger('elasticsearch.trace') 
tracer.setLevel(logging.INFO) 
tracer.addHandler(logging.FileHandler('/tmp/es_trace.log')) 

Ich bin nicht daran interessiert, die Trace-Protokolle zu halten, so habe ich das in der Nähe-at-Hand Django NullHandler.

from django.utils.log import NullHandler 
tracer = logging.getLogger('elasticsearch.trace') 
tracer.setLevel(logging.INFO) 
tracer.addHandler(NullHandler()) 
+0

Es ist erwähnenswert, dass, am besten kann ich sagen, die "keine Handler gefunden werden" Nachrichten sind nur zur Information. Sie zeigen kein Problem an. – Laizer

Verwandte Themen