gpt4 book ai didi

python - 使用不同的扩展名轮换日志

转载 作者:行者123 更新时间:2023-11-30 22:11:46 24 4
gpt4 key购买 nike

根据the documentation用于日志轮换

When backupCount is non-zero, the system will save old log files by appending the extensions ‘.1’, ‘.2’ etc., to the filename. For example, with a backupCount of 5 and a base file name of app.log, you would get app.log, app.log.1, app.log.2, up to app.log.5.

我想使用不同的扩展名 - 而不是 log log.1 log.2 log.3 我想轮换为 log、log.x、log.x.x、log。 x.x.x。我怎样才能做到这一点?

最佳答案

查看类RotatingFileHandler,您会发现有一个方法doRollover,它可以执行日志文件的翻转和命名:

def doRollover(self):
"""
Do a rollover, as described in __init__().
"""
if self.stream:
self.stream.close()
self.stream = None
if self.backupCount > 0:
for i in range(self.backupCount - 1, 0, -1):
# Those are the lines, which set the filenames
sfn = self.rotation_filename("%s.%d" % (self.baseFilename, i))
dfn = self.rotation_filename("%s.%d" % (self.baseFilename,
i + 1))
if os.path.exists(sfn):
if os.path.exists(dfn):
os.remove(dfn)
os.rename(sfn, dfn)
dfn = self.rotation_filename(self.baseFilename + ".1")
if os.path.exists(dfn):
os.remove(dfn)
self.rotate(self.baseFilename, dfn)
if not self.delay:
self.stream = self._open()

正如您所看到的,使用标准的 RotatingFileHandler 无法实现您想要的效果,因为除了基本文件名之外,没有任何选项可以对文件命名产生任何影响。

您可以创建自己的处理程序,该处理程序继承自 RotatingFileHandler 并覆盖方法 doRollover,以覆盖您的命名方案。

关于python - 使用不同的扩展名轮换日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51321811/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com