Я не могу найти хороший способ автоматически пролонгировать журнал, когда существует программа на Python, из-за исключения или обычного завершения. У меня есть следующий код
logger = logging.getLogger()
fh = TimedRotatingFileHandler(log_name, when='H')
formatter = logging.Formatter(
'%(asctime)s %(levelname)-8s [%(name)-12s:%(lineno)s - %(funcName)20s()] %(message)s')
fh.setFormatter(formatter)
logger.addHandler(fh)
logger.setLevel(level)
И моя основная функция
if __name__ == "__main__":
try:
main()
finally:
logging.getLogger().handlers[0].doRollover()
logging.shutdown()
Я не думаю, что dorollover()
хоть что-то делает. После выхода из программы я по-прежнему получаю устаревший файл журнала без отметки времени.