java - Log4j 显示不正确的日志记录级别

标签 java log4j

我的记录器似乎工作得很好,但最近它一直显示 DEBUG 消息。我不完全确定为什么,因为我没有改变任何东西。

这是我的 log4j.properties 文件的内容:

# Set root logger level to appropriate level and its appender to A1, R
log4j.rootLogger=INFO, A1, R
# A1 is set to be a ConsoleAppender.
log4j.appender.A1=org.apache.log4j.ConsoleAppender

# A1 uses PatternLayout.
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d %-5p [%c] %m%n

# R is set to be a rolling log file appender
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=${catalina.home}/logs/evepromote.log

# R also uses PatternLayout.
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d %-5p [%c] %m%n

我只想显示 INFO 消息,并且我认为我已经使用 log4j.rootLogger 做到了这一点。任何人都可以看到显示 DEBUG 消息的原因吗?

编辑

第一行DEBUG来自spring,这确实令人困惑。我从一开始就使用 Spring 并且以前没有这样做过:

2014-01-08 10:16:26,742 DEBUG [org.springframework.web.context.support.StandardServletEnvironment] Initializing new StandardServletEnvironment

Log4j 初始化的输出

log4j: Using URL [file:/C:/IntelliJIdea/IntelliJIdea/system/tomcat/Unnamed_EvePromote/work/Catalina/localhost/evepromote/WEB-INF/classes/log4j.xml] for automatic log4j configuration.
log4j: Preferred configurator class: org.apache.log4j.xml.DOMConfigurator
log4j: System property is :null
log4j: Standard DocumentBuilderFactory search succeded.
log4j: DocumentBuilderFactory is:    com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl
log4j: debug attribute= "null".
log4j: Ignoring debug attribute.
log4j: reset attribute= "false".
log4j: Threshold ="null".
log4j: Level value for root is  [debug].
log4j: root level set to DEBUG
log4j: Class name: [org.apache.log4j.ConsoleAppender]
log4j: Setting property [target] to [System.out].
log4j: Parsing layout of class: "org.apache.log4j.PatternLayout"
log4j: Setting property [conversionPattern] to [%d %-5p [%c] %m%n].
log4j: Adding appender named [console] to category [root].

真正让我惊讶的是,当我有一个 .properties 文件时,它默认会查找 .xml 文件。

最佳答案

默认情况下,Log4J 将首先查找 log4j.xml 文件,并且仅当找不到该文件时,才会查找 log4j.properties。您可以通过将 log4j.configuration 系统属性设置为指向您感兴趣的确切配置文件来覆盖此设置。

关于java - Log4j 显示不正确的日志记录级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20992730/

相关文章:

java - 在 java 中使用 mockito 记录器

java - 如何不登录 Digester?

maven - 便利性(Maven/Gradle)依赖关系可克服log4j的警告: “no appenders could be found for logger”并只需写入控制台

java - 不可能在 ArrayList.get() 上发生 IndexOutOfBound。有什么线索吗?

java - 非 Activity Java 类中的 Dagger 2 注入(inject)

java - 控制台输出流的类型

java - 如何在应用程序运行期间更改 log4j 设置?

java - 具有两个观察者列表的观察者模式

java - 如何只打开一次内部框架

java - Maven:如何排除或设置提供给其他依赖项拖动的依赖项