Файл журнала Python не вращается

#python #logging

Вопрос:

Я пытаюсь использовать TimedRotatingFileHandler модуль «Из журнала«, но он не создает новый файл журнала и не «поворачивает» ведение журнала в новый файл. Он просто продолжает регистрироваться в одном и том же файле.

 import logging
from logging.handlers import TimedRotatingFileHandler


logging.basicConfig(
        handlers=[TimedRotatingFileHandler(filename='runtime.log', when='D', interval=1, backupCount=7, encoding='utf-8')],
        level=logging.DEBUG,
        format="[%(asctime)s] %(levelname)s [%(filename)s:%(lineno)d] %(message)s")
 

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

Что я делаю не так?

РЕДАКТИРОВАТЬ: Я запускаю этот скрипт через задание cron (mac), если это имеет значение.

Комментарии:

1. Это, кажется, отлично работает для меня (я изменил «дни» на «минуты» в целях тестирования).

2. Странно, интересно, что я могу делать не так…..возможно, это связано с тем, что я запускаю его через cronjob ?

3. Может быть. Я поместил его в небольшой файл сценария и запустил сценарий из командной строки, и он сгенерировал правильное количество файлов с правильными отметками времени.

4. Когда вы говорите «запускаете его через cronjob», означает ли это, что вы постоянно перезапускаете сценарий? Потому что это, конечно, приведет к сбросу таймера поворота. Всякий раз, когда запускается сценарий, время 0. и когда начинается новый день, во время выполнения сценария, с этого момента журналы этого сценария будут записываться в повернутый файл.

5. @блюз О, черт возьми, я думаю, что ты прав. Я каждый раз прокручиваю сценарий заново. По сути, я подключаю API, чтобы что-то проверить, и записываю результат в файл, который я хотел бы вращать один раз в день. Как при этом сохранить регистратор «живым»?