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)