Mit der unten stehenden Konfiguration wird meine Logdatei "test-debug.log" heißen und für jedes Mal, wenn ich das Skript ausführe, wird es unendlich wachsen. Ich möchte nur, dass diese Protokolldatei die Protokolldatensätze aus der letzten Ausführung des Skripts enthält. Das Protokoll sollte vor dem nächsten Start gelöscht werden.Wie bekomme ich Logger zum Löschen vorhandener Protokolldateien vor dem erneuten Schreiben?
Wie mache ich das?
logger = logging.getLogger('test') #Create a log with the same name as the script that created it
logger.setLevel('DEBUG')
#Create handlers and set their logging level
filehandler_dbg = logging.FileHandler(logger.name + '-debug.log')
filehandler_dbg.setLevel('DEBUG')
#Create custom formats of the logrecord fit for both the logfile and the console
streamformatter = logging.Formatter(fmt='%(levelname)s:\t%(threadName)s:\t%(funcName)s:\t\t%(message)s', datefmt='%H:%M:%S') #We only want to see certain parts of the message
#Apply formatters to handlers
filehandler_dbg.setFormatter(streamformatter)
#Add handlers to logger
logger.addHandler(filehandler_dbg)
Danke, es funktioniert jetzt perfekt .. Ich hatte mir tatsächlich die Dokumentation für den 'Dateihandler' angeschaut, aber es gab keine Weitere Informationen darüber, was und warum 'mode = a' war der Standard .. Jetzt glaube ich zu verstehen, dass es von' fileIO' Syntax oder so ähnlich kommt? –
Genau. Es gibt eine Liste aller Modi hier: http://docs.python.org/2/library/functions.html#open – dmcc
es ist eine Schande, dass die Dokumente für die Protokollierung nicht zurück zu den Funktionen verknüpfen # offene Seite, dass wäre wirklich nützlich. –