как сделать время опрокидывания как неотъемлемую точку в python timerotatingfilehandler - PullRequest
0 голосов
/ 29 февраля 2020

Начальное время ролловера python timerotatingfilehandler - это самое последнее время изменения файла. Это не всегда в интегральной точке. Например, когда я устанавливаю параметр when='H', как сделать время опрокидывания в точке интегрирования, например, 14:00:00 вместо 14: 15: 30?

1 Ответ

0 голосов
/ 29 февраля 2020

Это можно сделать, вручную установив начальный атрибут rolloverAt. Поэтому, когда наступает 14:15, вы указываете обработчику, что ролловер происходит в 15:00, и оттуда он будет просто увеличиваться на час при каждом следующем опрокидывании.

from logging import TimedRotatingFileHandler
from datetime import datetime

handler = TimedRotatingFileHandler('file.log', when='H')
last_full_hour = datetime.now().replace(minute=0, second=0).timestamp()
handler.rolloverAt = last_full_hour + handler.interval # 3600 would work too
...