首页 > 解决方案 > 在 python 日志记录模块中强制进行日志轮换

问题描述

如果我有一个旋转的日志文件。(logging_file.log) 在满足 x 条件时旋转。如何让它旋转?我知道当大小超过一定数量时,旋转日志模块会自动旋转,但是对于不是大小的不同条件,如何在日志模块中进行这种旋转。或者,无论出于何种原因,我如何强制它将日志记录旋转到一个新的日志记录文件中。有这个功能或命令吗?简单地说,如果我想使用更新的日志文件并存档旧的日志文件,我该如何手动轮换日志文件。就像是

if lines_in_file > 3
    rotate()

[注意:使其旋转的条件无关紧要,但我试图询问什么功能将使这种旋转发生。是否有一个简单的功能可以完成旋转的工作?

标签: pythonlogging

解决方案


RotatingFileHandler当您配置记录器时,您应该(或可以保存)对 from 的适当实例的引用。你只需要调用它的doRollover方法:

rfh = RotatingFileHandler('foo.log')

...

rfh.doRollover()

更一般地,RotatingFileHandler.doRollover使用BaseRotatingHandler.rotate,它采用源文件名和目标文件名。rotate要么rotator使用相同的参数调用处理程序的属性,要么只是将源移动到目标。


推荐阅读