2011年8月10日 星期三

[java]log4j設定

#定義logger "test.board", 這可以以namespace層級方式設定, 如傳入class屬於test.board.aaa, 則會取到此logger
log4j.logger.test.board=debug, A1
#避免讓rootLogger也有重複的輸出, 要加入這一行
log4j.additivity.test.board=false
#設定logger "test.board"顯示在哪種裝置上
log4j.appender.A1=org.apache.log4j.ConsoleAppender
#設定logger "test.board"顯示訊息的格式
log4j.appender.A1.layout.ConversionPattern=%d{ABSOLUTE} %5p [%t] (%F:%L) - %m%n
log4j.appender.A1.layout=org.apache.log4j.PatternLayout


"Log4j的關鍵之處在于它的繼承思想。也就是一個Log可以繼承另外一個Log的屬性(輸出到哪里,日誌等級,日誌格式等等)。怎麼繼承?
Log4j是根據Log的名字來判斷繼承關係的,比如:
名字為“com.zhlmmc.lib”的Log就是“com.zhlmmc.lib.log”的parent,明白了吧!Log4j還有一個rootLogger,相當於JavaObject回過頭來看“LogFactory.getLog(Test.class)”這裏的“Test.class”事實上傳進去的是Test這個類的完整路徑(包名+類名),“test.Test”。這樣如果存在“test”這個Log那麼Test這個Log就繼承它,否則就繼承rootLogger。"




沒有留言:

張貼留言