2013-04-26 53 views
0

log4j的加我發現瞭如何配置我的log4j.properties,以便將在不同的文件:與控制檯 - 和多FileAppender今天

log4j.rootLogger=ALL, ConsoleAppender, FA1, FA2, FA3 

#Define which packages use which appenders 
log4j.logger.de.package1=ALL, FA1 
log4j.logger.de.package2=ALL, FA2 
log4j.logger.de.package3=ALL, FA3 

#Ensure the logs don't add to each other 
log4j.additivity.de.package1=false 
log4j.additivity.de.package2=false 
log4j.additivity.de.package3=false 

#If you want to append the file(not to override when it already exists): 
#log4j.appender.FileAppender.Append=true 

log4j.appender.ConsoleAppender=org.apache.log4j.ConsoleAppender 
log4j.appender.ConsoleAppender.layout=org.apache.log4j.PatternLayout 
log4j.appender.ConsoleAppender.layout.ConversionPattern=%d (%F:%L) %-5p %c - %m%n 

log4j.appender.FA1=org.apache.log4j.FileAppender 
log4j.appender.FA1.Threshold=WARN 
log4j.appender.FA1.File=./logs/FA1.log 
log4j.appender.FA1.layout=org.apache.log4j.PatternLayout 
log4j.appender.FA1.layout.ConversionPattern=%d (%F:%L) %-5p %c - %m%n 

log4j.appender.FA2=org.apache.log4j.FileAppender 
log4j.appender.FA2.Threshold=WARN 
log4j.appender.FA2.File=./logs/FA2.log 
log4j.appender.FA2.layout=org.apache.log4j.PatternLayout 
log4j.appender.FA2.layout.ConversionPattern=%d (%F:%L) %-5p %c - %m%n 

log4j.appender.FA3=org.apache.log4j.FileAppender 
log4j.appender.FA3.Threshold=WARN 
log4j.appender.FA3.File=./logs/FA3.log 
log4j.appender.FA3.layout=org.apache.log4j.PatternLayout 
log4j.appender.FA3.layout.ConversionPattern=%d (%F:%L) %-5p %c - %m%n 

正如你可以看到我所定義的相加爲false,但與我有問題 沒有控制檯輸出了。

如果我將可加性設置爲true,則所有消息均記錄兩次,並在每個文件擴展器中都有 。

我該如何解決這個問題?我不想要雙重項目,我不想每個消息 在每個日誌文件中,但我想在我的控制檯中的所有消息。

有點棘手還是比我想象的更簡單?

回答

1

實測溶液:

#Define which packages use which appenders 
log4j.logger.de.package1=ALL, FA1, ConsoleAppender 
log4j.logger.de.package2=ALL, FA2, ConsoleAppender 
log4j.logger.de.package3=ALL, FA3, ConsoleAppender 

我需要是ConsoleAppender添加到每個包爲好。