Java 使用log4j将特定级别(致命级别)记录在另一个文件中,文件名为当前日期

Java 使用log4j将特定级别(致命级别)记录在另一个文件中,文件名为当前日期,java,file,logging,log4j,log4j2,Java,File,Logging,Log4j,Log4j2,我只想在另一个日志文件中以当前日期作为名称记录致命级别。我试过下面的方法 # Console appender configuration log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%-5p: %c - %m%n lo

我只想在另一个日志文件中以当前日期作为名称记录致命级别。我试过下面的方法

# Console appender configuration
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%-5p: %c - %m%n
log4j.appender.stdout.filter.b=org.apache.log4j.varia.LevelMatchFilter
log4j.appender.stdout.filter.b.LevelToMatch=FATAL    
log4j.appender.stdout.filter.b.AcceptOnMatch=false

#File appender configuration
log4j.appender.fileout = org.apache.log4j.FileAppender
log4j.appender.fileout.File = F:/Logs/log1.log
log4j.appender.fileout.layout.ConversionPattern = %d{ABSOLUTE} %5p %c - %m%n
log4j.appender.fileout.layout = org.apache.log4j.PatternLayout
log4j.appender.fileout.ImmediateFlush=true
log4j.appender.fileout.Threshold=FATAL
log4j.appender.fileout.Append=true
log4j.appender.fileout.filter.a=org.apache.log4j.varia.LevelMatchFilter
log4j.appender.fileout.filter.a.LevelToMatch=FATAL    
log4j.appender.fileout.filter.a.AcceptOnMatch=true 
有了它,我可以打印到不同的文件中,但无法将名称动态更改为当前日期。。请提出解决办法


我使用的log4j 1.2.13具有以下配置,现在我可以仅将致命日志打印到不同的日志文件中,并将当前日期作为其名称

log4j.rootLogger=INFO, stdout, rollingAppender
# Console appender configuration
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%-5p: %c - %m%n
log4j.appender.stdout.filter.b=org.apache.log4j.varia.LevelMatchFilter
log4j.appender.stdout.filter.b.LevelToMatch=FATAL    
log4j.appender.stdout.filter.b.AcceptOnMatch=false

#File appender configuration
log4j.appender.rollingAppender=org.apache.log4j.rolling.RollingFileAppender
log4j.appender.rollingAppender.rollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy
log4j.appender.rollingAppender.rollingPolicy.fileNamePattern=F:/temp/app%d{yyyy-MM-dd}.log
log4j.appender.rollingAppender.layout.ConversionPattern= %d %c %M - %m%n
log4j.appender.rollingAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.rollingAppender.ImmediateFlush=true
log4j.appender.rollingAppender.Threshold=FATAL
log4j.appender.rollingAppender.Append=true
log4j.appender.rollingAppender.filter.a=org.apache.log4j.varia.LevelMatchFilter
log4j.appender.rollingAppender.filter.a.LevelToMatch=FATAL    
log4j.appender.rollingAppender.filter.a.AcceptOnMatch=true

我们必须加上

除了这个没有别的办法吗。。??我们可以使用wither fileAppender或DailRollingFileAppender吗???请澄清“动态更改名称”是什么意思?我也对这个功能感兴趣,不知道“LevelToMatch”。我会尝试一下……使用上面的代码,致命日志将打印在F:/logs/log1.log文件中,但我希望这些日志打印在文件中,如下所示:F:/logs/log1-11-7-14.log(应将当前日期附加到文件名)@mvidelgauz我认为下面的答案对您也很有用,请看一看