log4j框架中Max Backup Index的理解

Understanding of Max Backup Index in log4j framework

我给大家介绍一个简单的源码例子:

#Level
log4j.rootLogger = DEBUG, f

#Appender
log4j.appender.f = org.apache.log4j.RollingFileAppender
log4j.appender.f.File = C:\Users\myname\Desktop\Test.txt

#File size
log4j.appender.f.MaxFileSize = 100KB
log4j.appender.f.MaxBackupIndex = 1

我了解源代码的工作原理,看到输出结果将 "logger messages" 写入文件 Test.txt。当我达到 100KB 的最大文件大小时,它将创建名称为 Test.txt.1[=11= 的新文件]

我的简单问题是我可以生成名称为 Test1.txt 的新文件否 Test.txt.1

此致,
D.Balamjiev

该参数定义了从回滚策略中删除后将保留多少文件:

官方doc声明:

maxBackupIndex: Maximum number of backup files to keep.

在您的情况下,每次日志文件达到您定义的 100KB 时都会发生...

您可能想要使用自定义 FileNamePattern,使用 %i,这是文件的索引:

#Appender
log4j.appender.f = org.apache.log4j.RollingFileAppender
log4j.appender.f.File = C:\Users\myname\Desktop\Test.txt
log4j.appender.f.rollingPolicy.FileNamePattern=C:\Users\myname\Desktop\Test%i.txt

感谢 Berger 的想法。

这是我的完整工作来源

log4j.rootLogger = DEBUG, Roller

log4j.appender.Roller=org.apache.log4j.rolling.RollingFileAppender
    log4j.appender.Roller.RollingPolicy=org.apache.log4j.rolling.FixedWindowRollingPolicy
log4j.appender.Roller.RollingPolicy.maxIndex=5
    log4j.appender.Roller.TriggeringPolicy=org.apache.log4j.rolling.SizeBasedTriggeringPolicy
log4j.appender.Roller.TriggeringPolicy.MaxFileSize= 50000
log4j.appender.Roller.RollingPolicy.ActiveFileName=D:\Test\Fixed.txt

log4j.appender.Roller.layout = org.apache.log4j.PatternLayout
log4j.appender.Roller.layout.ConversionPattern = Date: %d{dd-MM-yyyy} Time: %d{HH:mm:ss} [Message is: %m] Other/%r [%t] %-5p %c %x/%n