我在Tomcat 7中運行的webapp重複多次同一條日誌消息6次。例如:在webapp中混淆Log4J配置
[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
當我有出現多次,我通常會改變我的日誌記錄屬性的最小日誌記錄配置日誌行類似的問題(只有一個附加器,只有根記錄器)然後逐步豐富這個配置,直到我找出錯誤發生的地方。 – mschenk74
好吧,我並不是故意爲這個「責怪」Tomcat,而是說明了log4j和我對log4j的工作原理缺乏瞭解。屬性文件無處不在。在這種情況下,我有一個單獨的axis2部署。 WEB_INF/classes目錄中有一個log4j屬性文件,它影響輸出級別(調試或信息等),但我不明白爲什麼(本身)會導致重複。 –
你可以在這裏發佈這個log4j.properies文件嗎? – mschenk74