Log4j如何在文件中保存低于“WARN”的级别

时间:2015-03-15 20:38:13

标签: java log4j

你能解释一下,如何配置log4j.properties - 所以只保存级别:" trace"," debug"," info"在文件中。此代码仅保存在文件中,并且来自" INFO"到"致命"

log4j.rootLogger=INFO, file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=log4j-HigherWarnSaveInFile.log
log4j.appender.file.MaxFileSize=1MB
log4j.appender.file.MaxBackupIndex=1
log4j.appender.file.Append=true
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{2}:%L - %m%n

Java file
LOGGER.trace("Trace Message!");
LOGGER.debug("Debug Message!");
LOGGER.info("Info Message!");
LOGGER.warn("Warn Message!");
LOGGER.error("Error Message!");
LOGGER.fatal("Fatal Message!");

1 个答案:

答案 0 :(得分:2)

Log4j使用阈值机制,因此通常您会定义一个阈值,并且将记录在该级别上或之上登录的所有消息。

因此,如果将阈值级别设置为INFO,则会记录INFO,WARN,ERROR和FATAL。 TRACE和DEBUG将被过滤掉。这不是你需要的。

但您可以将根记录器的阈值设置为TRACE或ALL,然后使用LevelRangeFilter过滤掉更高级别的消息。

log4.rootLogger=ALL, file
[...]
log4j.appender.file.filter=org.apache.log4j.varia.LevelRangeFilter
log4j.appender.file.filter.LevelMin=TRACE
log4j.appender.file.filter.LevelMax=INFO