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

时间:2014-01-08 10:19:02

标签: 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].

我在这里真正跳出来的是,当我有一个.xml文件时,默认情况下它正在查找.properties文件。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

这主要是因为您加载的某些第三方库更改了全局/记录器级别设置以启用DEBUG消息。

检查DEBUG信息的第一行以查看它的启动位置可能会让您知道哪个库导致了这种情况;否则,请尝试检查项目中是否有新添加的库/依赖项。