Dies ist mein Szenario: Ich möchte die Aktivität meines Moduls protokollieren. Dies muss abhängig von der ausgeführten Methode (sagen wir INPUT und OUTPUT) in zwei verschiedenen Dateien erfolgen.Python protokolliert mehrere Dateien mit demselben Logger
So habe ich zwei Handler, jeder Punkt auf eine andere Datei (my_in_.log & my_out_.log), mit dem gleichen Protokolllevel. Ich würde gerne wissen, ob ich den gleichen Logger verwenden kann, um dies zu erreichen, oder ich muss zwei Logger definieren. Meine Config ist:
[loggers]
keys=root, my_log
[handlers]
keys=my_in_hand, my_out_hand
[formatters]
keys=generic_form
...
[logger_my_log]
level=NOTSET
handlers=my_in_hand, my_out_hand
qualname=ws_log
[handler_my_in_hand]
class=handlers.TimeRotatingFileHandler
level=NOTSET
formatter=generic_form
args=('my_in_.log', 'h', 1, 0, None, False, True)
[handler_my_out_hand]
class=handlers.TimeRotatingFileHandler
level=NOTSET
formatter=generic_form
args=('my_out_.log', 'h', 1, 0, None, False, True)
Muss ich einen Logger pro Handler/Ziel definieren? (weil ich verschiedene Informationen in verschiedenen Dateien protokollieren möchte) Gibt es eine Möglichkeit, dem Logger anzuzeigen, welcher Handler das tun wird? Ich meine, ich habe zwei Handler für einen Logger und wähle dann nur einen Handler, um eine Methode zu protokollieren.
Vielen Dank!
Vielleicht bin ich nicht klar: Ich will nicht meine Aufzeichnungen einzuloggen an den Logger jeder Handler ** ** hinzugefügt. Was ich will, ist auszuwählen, welcher Handler den Datensatz protokollieren wird, dh ein Logger -> zwei Handler, aber wählen Sie, welchem Ziel der Datensatz zugewiesen wird. Verwenden Sie den gleichen Logger mit verschiedenen Handlern, aber einige Datensätze werden von einem Handler protokolliert und einige mit anderen ... Ist das möglich oder muss ich andere Logger definieren? VIELEN DANK! :) –
@ AlbertoMegía Sie sollten Ihre eigene Methode definieren, die als Argument das Protokollziel verwendet und intern den richtigen Handler für die Protokollnachricht verwendet. – mike
Also @mike Sie meinen, ich muss Logger-Handler hinzufügen und entfernen, um es in Runtime auswählen? Dies ist vielleicht nicht meine beste Option, da dieses Modul meine Frontalansicht in einem Webdienst ist ... bei jeder Anforderung müsste ich Handler wechseln ...: S –