Tomcat webapp中混乱的Log4J配置

Tomcat webapp中混乱的Log4J配置,tomcat,log4j,Tomcat,Log4j,我在Tomcat 7中运行的Web应用程序正在重复相同的日志消息6次以上。例如: [INFO] 1 29042 [http-nio-8443-exec-4] INFO com.lni.exchange.healthvault.ParseMeasurement - 1 29042 [http-nio-8443-exec-4] INFO com.lni.exchange.healthvault.ParseMeasurement - 1 29042 [http-nio-8443-exec-4] I

我在Tomcat 7中运行的Web应用程序正在重复相同的日志消息6次以上。例如:

[INFO] 1
29042 [http-nio-8443-exec-4] INFO com.lni.exchange.healthvault.ParseMeasurement  - 1
29042 [http-nio-8443-exec-4] INFO com.lni.exchange.healthvault.ParseMeasurement  - 1
29042 [http-nio-8443-exec-4] INFO com.lni.exchange.healthvault.ParseMeasurement  - 1
29042 [http-nio-8443-exec-4] INFO com.lni.exchange.healthvault.ParseMeasurement  - 1
29042 [http-nio-8443-exec-4] INFO com.lni.exchange.healthvault.ParseMeasurement  - 1
29042 [http-nio-8443-exec-4] INFO com.lni.exchange.healthvault.ParseMeasurement  - 1
预期的写入输出仅仅是第一行([INFO]1),但随后我得到了该消息的6次重复。有人知道为什么这个消息会重复这么多次吗?可能弄乱了我的log4j属性,这一直让我有点困惑

我有一个使用Spring的Axis2 1.6.2部署,它正在接收数据并将其发送到HealthVault

以下是log4j属性文件:

# Set root category priority to INFO and its only appender to CONSOLE.
#log4j.rootCategory=INFO, CONSOLE
log4j.rootCategory=INFO, CONSOLE, LOGFILE

# Set the enterprise logger priority to FATAL
log4j.logger.org.apache.axis2.enterprise=FATAL
log4j.logger.de.hunsicker.jalopy.io=FATAL
log4j.logger.httpclient.wire.header=FATAL
log4j.logger.org.apache.commons.httpclient=FATAL

# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=[%p] %m%n

# LOGFILE is set to be a File appender using a PatternLayout.
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=axis2.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%d [%t] %-5p %c %x - %m%n

这不是Tomcat,这是部署到它的一些应用程序。询问应用程序开发人员。

log4j可能是您的罪魁祸首:


同一条日志消息多次出现在日志中。这通常是log4j设置中的错误。应用程序开发人员只能在应用程序带来错误配置的log4j设置的情况下提供帮助。Tomcat不使用log4j,
logging.properties
也不会在没有人篡改的情况下配置错误。因为作者写道“可能弄乱了我的log4j属性,这一直让我有点困惑。”我不会责怪tomcat的错误配置,而是责怪问题的作者。我的观点是:不一定是应用程序的开发人员,而是进行配置的人。那么他的问题就完全错了。Tomcat不会重复任何操作,因为Tomcat不会记录这些操作。当我多次出现类似的日志记录行问题时,我通常会将日志记录属性更改为最小日志记录配置(只有一个appender,只有root logger),然后逐步充实此配置,直到我找到错误所在。好的,我并不是想为此“责怪”Tomcat,但正如log4j所说的,我对log4j的工作原理缺乏了解。属性文件随处可见。在本例中,我有一个axis2部署。在WEB_INF/classes目录中有一个log4j属性文件,它会影响输出级别(调试或信息等),但我不明白为什么它(本身)会导致重复。你能在这里发布这个log4j.properies文件吗?我将它添加到原始消息中。谢谢