在Python 3+中,我无法理解RotatingFileHandler。在this example中,用户显示的RotatingFileHandler
的backupCount为10,最大字节数为2000。这将创建11个日志文件,每个日志文件最多包含2000个字节(总共22000个字节)。如果我在许多不同的日志消息中记录的总字节数超过22000,会发生什么情况?日志文件会被覆盖吗?
答案 0 :(得分:1)
发生的事情是,它开始将日志信息保存到文件中。当日志文件的大小超过maxBytes
时,将归档当前日志,并将新的日志信息附加到新的日志文件中。可能存在最大数量的backupCount
个日志档案,并且仅在数量超过backupCount
时才从最早的档案中删除档案。
所有这些自动为您发生。
我将尝试绘制正在发生的事情:
您从开始:
app.log
app.log
太大时:
app.log <-- Created fresh
app.log.1 <-- renamed from old app.log
这一直持续到您拥有.number
指定的backupCount
个文件为止:
app.log <-- You always append data HERE
app.log.1 <-- renamed from old app.log
app.log.2 <-- renamed from old app.log.1
app.log.3 <-- renamed from old app.log.2
app.log.4 <-- renamed from old app.log.3
app.log.5 <-- renamed from old app.log.4
app.log
再次过大并且已经有5个备份文件时:
app.log <-- You always append data HERE
app.log.1 <-- renamed from old app.log
app.log.2 <-- renamed from old app.log.1
app.log.3 <-- renamed from old app.log.2
app.log.4 <-- renamed from old app.log.3
app.log.5 <-- renamed from old app.log.4
-- old app.log.5 gets deleted --
查看documentation以获得更多详细信息。