我可以使用实际日期创建记录器,并每天使用以下方法进行轮换:
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将注意轮换和删除旧日志。
第二个解决方案解决了我的第一个问题。所有脚本均以脚本启动时的实际日期存储在文件中,但不会删除旧日志。我可以在Linux中使用cron做到这一点,或者制作另一个脚本来解决这个问题,但是我希望有更好的解决方案。
所以我想要的是,当我的脚本在2018年11月11日23:59开始并花15分钟,因此它将在00:14结束时,我的所有日志都将位于mylog.log-2018-1-1
有没有一种方法,如何自动旋转并删除旧文件并使所有日志与脚本开始的日期保持在文件中?