Python Logging und rotierende Dateien
Habe ich ein python-Programm, das schreiben in eine log-Datei, die gedreht wird, indem die Linux logrotate-Befehl. Wenn das passiert muss ich das signal für mein Programm zu schreiben aufhören, um die alte Datei und starten Sie das schreiben der neuen. Ich kann mit den signal, aber wie sage ich es in python zu schreiben, um die neue Datei?
Öffne ich die Datei wie folgt:
logging.basicConfig(format='%(asctime)s:%(filename)s:%(levelname)s:%(message)s',filename=log_file, level=logging.INFO)
und schreiben es so:
logging.log(level,"%s" % (msg))
Die logging-Module sehen sehr mächtig, aber auch überwältigend. Danke.
InformationsquelleAutor der Frage fredsnertz | 2012-02-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Möchten Sie vielleicht zu schauen, WatchedFileHandler um dies zu implementieren, oder als alternative, implementieren log-rotation mit RotatingFileHandler, die beide in der die Protokollierung.Handler-Modul.
InformationsquelleAutor der Antwort Andrew Walker
Nicht verwenden
logging.basicConfig
verwendenWatchedFileHandler
. Hier ist, wie es zu benutzen.InformationsquelleAutor der Antwort proski
Seit rotation ist bereits getan, indem
logrotate
, in Ihrem signal-handler sollten Sie nur tätigenlogging.basicConfig(...)
wieder und das sollte öffnen Sie die log-Datei.InformationsquelleAutor der Antwort Alastair Irvine
Dies sollte Ihnen helfen, im Umgang mit rotierenden log
InformationsquelleAutor der Antwort avasal