Я использую вращающийся регистратор, создающий файл журнала каждый час
import logging
import logging.config
import logging.handlers
tmppath = path.abspath(path.join(path.dirname(__file__), '..', '..', 'logging.ini'))
logging.config.fileConfig(tmppath)
logger = logging.getLogger("main.main")
Файл logging.ini содержит эти правила, которые говорят, что нужно использовать имя файла / var / log / myprogram / main.log и запускать новый файл каждый час.
[loggers]
keys=root,main
[handlers]
keys=fileHandler, consoleHandler
....
[handler_fileHandler]
class=logging.handlers.TimedRotatingFileHandler
formatter=myFormatter
args=('/var/log/myprogram/main.log', 'm', 60, 336, )
[formatter_myFormatter]
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
datefmt=
Этот регистратор отлично работает и создает файл в час.
Проблема в том, что когда программа перезапущен , текущий файл журнала "/var/log/myprogram/main.log" перезаписан , поэтому я теряю некоторое время журнала.
Я мог бы попытаться найтифайл журнала перед активацией ведения журнала и попытайтесь переименовать его «вручную», но это выглядит очень странно.
Есть ли способ настроить ведение журнала, чтобы он никогда не перезаписывал файл журнала, а всегда добавлялся?
Для моего случая использования было бы приемлемо, если бы после перезапуска период регистрации длился более часа.