python logging filehandler

plot title python



¿Cómo consigo que el registrador elimine el archivo de registro existente antes de escribirlo de nuevo? (1)

Prueba esto:

filehandler_dbg = logging.FileHandler(logger.name + ''-debug.log'', mode=''w'')

para abrir el nombre de archivo en modo de write en lugar de modo append , logger.name

Más información: logging.FileHandler docs, open() y lista de modos

Usando la configuración a continuación, mi archivo de registro se llamará ''test-debug.log'' y crecerá infinitamente por cada vez que ejecute el script. Solo quiero que este archivo de registro contenga los registros de la ejecución más reciente de la secuencia de comandos. El registro debe eliminarse antes de comenzar de nuevo.

¿Cómo puedo hacer eso?

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)