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

标签 java log4j

你能解释一下如何配置 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/

相关文章:

java - Android模拟器无法加载应用程序

java - 以小批量方式向服务发送大请求 (Java)

java - Log4j 如何阻止记录器打印到控制台?

hadoop - log4j.properties 过滤掉 Spark 和 YARN 日志

java - XML 验证不验证功能

java - 无法为 DWR 调用获取正确的 HashMap

java - 如何在放心的java中从值中找到键?

java - 如何初始化log4j 2.0? LogManager.getContext 带来空指针异常

java - Log4j2 基于属性禁用附加程序

java - Java 独立应用程序中的 Log4j 记录器。 jar 文件中的属性路径