2013-05-25 50 views
0

我在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 
+0

當我有出現多次,我通常會改變我的日誌記錄屬性的最小日誌記錄配置日誌行類似的問題(只有一個附加器,只有根記錄器)然後逐步豐富這個配置,直到我找出錯誤發生的地方。 – mschenk74

+0

好吧,我並不是故意爲這個「責怪」Tomcat,而是說明了log4j和我對log4j的工作原理缺乏瞭解。屬性文件無處不在。在這種情況下,我有一個單獨的axis2部署。 WEB_INF/classes目錄中有一個log4j屬性文件,它影響輸出級別(調試或信息等),但我不明白爲什麼(本身)會導致重複。 –

+0

你可以在這裏發佈這個log4j.properies文件嗎? – mschenk74

回答

0

這不是Tomcat的,這是一些應用程序部署到它。詢問應用開發者。

+0

這是在日誌中多次出現的相同日誌消息。這通常是log4j設置中的錯誤。應用程序開發只能幫助,如果它的應用程序,它帶來了這個錯誤配置的log4j設置。 – mschenk74

+0

如果沒有人被篡改,Tomcat不會使用Log4J,也不會配置'logging.properties'。 –

+0

由於作者寫道:「可能搞砸了我的log4j屬性,這對我來說一直有點困惑。」我不會責怪tomcat的錯誤配置,而是問題的作者。我的觀點是:它不一定是應用程序的開發人員,但配置的人 – mschenk74