你能解释一下如何配置 log4j.properties - 以便仅在文件中保存级别:“trace”、“debug”、“info”。此代码保存在文件中的级别仅从“INFO”到“FATAL”
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!");
最佳答案
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
关于java - Log4j如何在文件中保存低于 “WARN”的级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29065921/