2011-05-09 49 views
2

我可以使日誌去控制檯,但我似乎無法使它轉到日誌文件。這是我的properties文件。如何使log4j記錄到一個文件並打印到控制檯

log4j.rootLogger=DEBUG, LOG , stdout 
log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern=%5p %d{d/MM/yy HH:mm:ss}:%m%n 
# log4j.appender.LOG.Threshold=INFO 

log4j.appender.LOG=org.apache.log4j.RollingFileAppender 
log4j.appender.LOG.File=C:\dev\harry\data\logs\core.log 
log4j.appender.LOG.layout=org.apache.log4j.PatternLayout 
log4j.appender.LOG.Append=true 
log4j.appender.LOG.layout.ConversionPattern=%5p %d{d/MM/yy HH:mm:ss}:%m%n 
# log4j.appender.LOG.Threshold=INFO 
+1

不\ \必須\\?這在大多數屬性文件中都是如此 – MJB 2011-05-10 06:06:00

+0

@MJB:謝謝。你的建議解決了我的問題。你能否將你的評論格式化爲一個單獨的答案,以便我可以接受它。 – 2011-05-16 18:18:22

+0

完成後見... – MJB 2011-05-16 19:13:10

回答

5

問題是你的單個\應該是\\。在大多數屬性文件中都是如此。

0

,我會說: log4j.appender.LOG.Threshold = ALL

我不知道默認的是什麼。

1

文件路徑中存在一些需要修復的問題。語法有點神祕,但登錄到多個位置的方法是將一個指定日誌appender附加到根日誌記錄器。在該示例中這是:

log4j.rootLogger=DEBUG, LOG , stdout 

DEBUG是一個記錄級別(閾值過濾器),以用於根記錄器。

LOG是一個測井附加器

stdout的名稱是

測井追加程序由

log4j.appender.{logging-appender-name}={some.log4j.appender.class} 
log4j.appender.{logging-appender-name}.{some-other-property}=... 

{logging-appender-name}是通過自己選擇的名稱(指定的一個第二附加器的名稱在這種情況下LOG和stdout)和{some.log4j.appender.class}是許多log4j logging appender classes之一,例如DailyRollingFileAppenderConsoleAppender

相關問題