在python日志模块中强制日志旋转



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

if lines_in_file > 3
    rotate()

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

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

rfh = RotatingFileHandler('foo.log')
...
rfh.doRollover()

一般来说,RotatingFileHandler.doRollover使用BaseRotatingHandler.rotate,它接受源文件名和目标文件名。rotate或者用相同的参数调用处理程序的rotator属性,或者只是将源文件移动到目标文件。

最新更新