Python Logger protokolliert denselben Eintrag mehrmals

8

Ich habe eine solche Logger-Initialisierungsfunktion:

%Vor%

Und an einem Teil meines Codes habe ich eine solche Ausnahme:

%Vor%

Seltsamerweise bekomme ich denselben Fehler 2 mal geschrieben und es kann nur einmal caugh sein, sobald ich logger.error('Opps we got an error') mit print "test" ändere, bekomme ich "test" einmal ausgedruckt.

Was kann das Problem und die Lösung sein?

Grüße

    
Hellnar 12.08.2010, 12:16
quelle

4 Antworten

9

Sie fügen dem Root-Logger bei jedem Aufruf dieser Funktion einen neuen FileHandler hinzu: Der Aufruf von logger.getLogger ohne Namensargument gibt jedes Mal das gleiche Logger-Objekt zurück.

Sie sollten generate_logger () nur einmal aufrufen und dann durch Aufruf von logger.getLogger ():

einfach das gleiche Logger-Objekt erhalten %Vor%

(Beachten Sie, dass Sie generate_logger () nicht benötigen, um jetzt einen Wert zurückzugeben)

    
Stijn Hoop 17.06.2011, 12:12
quelle
9

Ich hatte auch das gleiche Problem und stieß auf diese Seite. Ja, ich habe auch mehrere Handler erstellt. In generate_logger () können Sie überprüfen, ob andere Handler vorhanden sind, und diese löschen.

%Vor%     
mohi666 21.01.2012 00:37
quelle
3

Ich denke, dass Sie wahrscheinlich zwei Handler zum Logger hinzugefügt haben. Vielleicht wird irgendwann ein impliziter Handler hinzugefügt.

    
Simon Hibbs 12.08.2010 12:37
quelle
2

Wahrscheinlich haben Sie zwei Handler, die zum selben resultierenden Protokoll gehen.

Wie viele Handler erstellen Sie? Wie oft führst du generate_logger aus? Jedes Mal, wenn Sie generate_logger ausführen, erstellen Sie einen anderen Handler für dieselbe Datei, was zu einer möglichen Duplizierung führt.

    
S.Lott 12.08.2010 12:28
quelle

Tags und Links