Log4j 1.2.15學習筆記

     Log4j發展的真快,2005年用的時候版本是1.2.8。現在再看時發現都出到2.0了,仔細一看,還有點意思,log4j上作了個說明。log4j有3個分支,1.2是穩定版,1.3不再繼續,2.0是實驗版。
     看來還是用1.2版的比較好,現在的版本是1.2.15,和1.2.8比有很大的變化。從配置文件裏反映出來,大的結構都變了。現把要點摘錄如下:
     Log4j有3個主要部件,loggers, appenders and layouts.
  •      logger有如下幾個級別,排列如下:         DEBUG < INFO < WARN < ERROR < FATAL
    logger引入了繼承的概念,這裏指的是名稱繼承,logger com.foo是 com.foo.Bar的父logger。同樣java.util是java.util.Vector的父類。
    另外Logger x = Logger.getLogger("wombat"); 和 Logger y = Logger.getLogger("wombat");是指向同一個對象,這樣的話不需要到處傳遞對象的引用。
  •     appender的意思是“輸出的目的地”, 它可以是console,file,gui component,JMS,remote socket server,NT Event Log
    任何寫log的請求會被傳遞到這個logger所有的appender那裏,同樣也會傳遞到繼承關係的上一級的logger的appender那裏。appender會隨着logger繼承關係而附加繼承。如果想停止這種附加繼承,可以把additivity的標記設爲false。
  • layout顧名思義是管輸出的格式的,PatternLayout是Log4j的標準輸出格式,具體內容請參照javadoc
    簡單歸納一下PatternLayout,一般的格式是%+格式修飾符+轉換字符。轉換字符就是要顯示哪些內容,可以參照javadoc查到,格式修飾符的規律如下:
Format modifier left justify minimum width maximum width comment
%20c false 20 none Left pad with spaces if the category name is less than 20 characters long.
%-20c true 20 none Right pad with spaces if the category name is less than 20 characters long.
%.30c NA none 30 Truncate from the beginning if the category name is longer than 30 characters.
%20.30c false 20 30 Left pad with spaces if the category name is shorter than 20 characters. However, if category name is longer than 30 characters, then truncate from the beginning.
%-20.30c true 20 30 Right pad with spaces if the category name is shorter than 20 characters. However, if category name is longer than 30 characters, then truncate from the beginning.
  • 最後貼個例子:
log4j.rootLogger=debug, stdout, R

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=example.log

log4j.appender.R.MaxFileSize=100KB
# Keep one backup file
log4j.appender.R.MaxBackupIndex=1

log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n

  • 補充一點,配置文件要麼放在classpath裏,不用特殊聲明。要麼指明路徑,如下初始化,一次即可。
	String resource =
;
URL configFileResource =
InitUsingPropertiesFile..getResource(resource);
PropertyConfigurator.configure(configFileResource);
發佈了38 篇原創文章 · 獲贊 1 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章