Я могу создать регистратор с фактической датой и ежедневно вращать его с помощью:
from logging.handlers import TimedRotatingFileHandler
TimedRotatingFileHandler('mylog.log', when='midnight', backupCount=10)
Другой способ - создать обработчик на основе фактической даты:
from datetime import datetime
logging.FileHandler('mylog-{}.log'..format(datetime.now().date().isoformat()))
Оба прекрасно работают, но мне нужно сочетание обоих.
Первое решение мне не подходит, потому что мне нужны все журналы за один прогон в одном файле. Например, когда мой скрипт запускается за 1 минуту до полуночи, у меня будут журналы в двух файлах журналов. Недостатки этого решения в том, что python позаботится о вращении и удалении старых журналов.
Второе решение исправить мою первую проблему. Все журналы хранятся в файле с фактической датой запуска скрипта, но он не заботится об удалении старых журналов. Я мог бы сделать это с помощью cron в Linux или создать другой скрипт, который позаботится об этом, но я бы предпочел лучшее решение.
Так что я хочу, чтобы мой сценарий начинался с 1.1.2018 в 23:59 и занимал 15 минут, поэтому он заканчивался 00:14, все мои журналы были бы в mylog.log-2018-1-1
Есть ли способ, как автоматически вращать, а также удалять старые файлы и сохранять все журналы в файле с датой, когда был запущен скрипт?