Вращающийся регистратор Python, как предотвратить перезапись файла журнала при перезагрузке? - PullRequest
0 голосов
/ 01 марта 2019

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

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" перезаписан , поэтому я теряю некоторое время журнала.

Я мог бы попытаться найтифайл журнала перед активацией ведения журнала и попытайтесь переименовать его «вручную», но это выглядит очень странно.

Есть ли способ настроить ведение журнала, чтобы он никогда не перезаписывал файл журнала, а всегда добавлялся?

Для моего случая использования было бы приемлемо, если бы после перезапуска период регистрации длился более часа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...