- logger - 來自於哪裡的 log 訊息,可以用 rootLogger 表示所有的訊息來源,也可以用 package 限定來源範圍。
- appender - 要導向哪裡,可以是 console 或檔案。
## 所有的 Log,包括系統面的與我的程式的 Log ## # 預設只接收 INFO 以上的訊息 # 然後導向 A1 這個 appender log4j.rootLogger=INFO, A1 # A1 appender log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender log4j.appender.A1.File=all.log log4j.appender.A1.DatePattern='.'yyyy-MM-dd # 特別的設定,可以另外設定訊息等級,多用在同一個 logger 有多個 appender 時,每個 appender 可以設定自己的訊息等級 log4j.appender.A1.Threshold=DEBUG log4j.appender.A1.layout=org.apache.log4j.PatternLayout log4j.appender.A1.layout.ConversionPattern=%d{yyy/MM/dd HH:mm:ss} %p [%t] %c{1} - %m%n ## 我的程式的 Log,用 package 限定範圍 ## # 預設只接收 DEBUG 以上的訊息 # 然後導向 A2 和 A3 這兩個 appender log4j.logger.idv.neil.app=DEBUG, A2, A3 # A2 appender log4j.appender.A2=org.apache.log4j.DailyRollingFileAppender log4j.appender.A2.File=app.log log4j.appender.A2.DatePattern='.'yyyy-MM-dd log4j.appender.A2.layout=org.apache.log4j.PatternLayout log4j.appender.A2.layout.ConversionPattern=%d{yyy/MM/dd HH:mm:ss} %p [%t] %c{1} - %m%n # A3 appender log4j.appender.A3=org.apache.log4j.ConsoleAppender log4j.appender.A3.layout=org.apache.log4j.PatternLayout log4j.appender.A3.layout.ConversionPattern=%d{yyy/MM/dd HH:mm:ss} %p [%t] %c{1} - %m%n奇怪的是下面這兩個設定產生的結果,系統面的 INFO 訊息收錄了,這沒有問題,但是我的程式的 DEBUG 因為第二行的設定也收錄了,就比較難以理解。
如果我的 DEBUG 被收錄了,那麼系統面的 DEBUG 怎麼沒有收錄?
log4j.rootLogger=INFO, A1 log4j.appender.A1.Threshold=DEBUG
---
沒有留言:
張貼留言