Подтвердить что ты не робот

Как получить регистратор для удаления существующего файла журнала перед его повторным письмом?

Используя приведенную ниже конфигурацию, мой файл журнала будет называться "test-debug.log", и он будет бесконечно расти, когда я запускаю script. Я просто хочу, чтобы этот файл журнала содержал записи журнала с самого последнего запуска script. Журнал следует удалить перед повторным запуском.

Как это сделать?

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)
4b9b3361

Ответ 1

Попробуйте следующее:

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

чтобы открыть имя файла в режиме write вместо режима append, clobbering logger.name

Дополнительная информация: logging.FileHandler docs