Posted on 2011-11-14 09:04
陳小東 閱讀(639)
評論(0) 編輯 收藏
Log4j支持兩種配置文件格式,一種是XML格式的文件,一種是Java特性文件log4j.properties(鍵=值)。
log4j 是一個開放源碼項目,是廣泛使用的以Java編寫的日志記錄包。由于log4j出色的表現,當時在log4j完成時,log4j開發組織曾建議sun在jdk1.4中用log4j取代jdk1.4 的日志工具類,但當時jdk1.4已接近完成,所以sun拒絕使用log4j,當在java開發中實際使用最多的還是log4j,人們遺忘了sun的日志工具類。它的一個獨有特性包括在類別中繼承的概念。通過使用類別層次結構,這樣就減少了日志記錄輸出量,并將日志記錄的開銷降到最低。
關于log4j的介紹就不再多說了,網上有很多相關的資料。目前我們華南研發中心也在使用log4j,但就我參加的項目而言有一點的問題,我們應該不是為了使用log4j而去使用,要使用log4j能夠為我們帶來便利和提高效率。下面主要就如何快速合理的使用log4j做一下介紹。(有不對的地方,請大家指正)
Log4j中有三個主要的組件,它們分別是 Logger、Appender和Layout,Log4j 允許開發人員定義多個Logger,每個Logger擁有自己的名字,Logger之間通過名字來表明隸屬關系。有一個Logger稱為Root,它永遠存在,且不能通過名字檢索或引用,可以通過Logger.getRootLogger()方法獲得,其它Logger通過Logger.getLogger(String name)或Logger.getLogger(Class clazz)方法獲得。
Appender則是用來指明將所有的log信息存放到什么地方,Log4j中支持多種appender,如 console、files、GUI components、NT Event Loggers等,一個Logger可以擁有多個Appender,也就是你既可以將Log信息輸出到控臺屏幕,同時存儲到一個文件中。
Layout的作用是控制Log信息的輸出方式,也就是格式化輸出的信息。
Log4j中將要輸出的Log信息定義了5種級別,級別依次從低到高為DEBUG、INFO、WARN、ERROR和FATAL,當輸出時,只有級別高過或等于配置中規定的級別時信息才能真正的輸出,如果配置OFF則不打出任何信息,假設Loggers級別為P,如果在Loggers中發生了一個級別Q比P高,則可以啟動,否則屏蔽掉。假設你定義的級別是info,那么error和warn的日志可以顯示而比他低的debug信息就不顯示了。這樣就很方便的來配置不同情況下要輸出的內容,而不需要更改代碼。(這點實在是方便啊。我們不用再使用system.out 在項目運用時還要去掉大量的system.out)
log4j 有兩種配置方法,大家熟知的是properties文件但是最近的項目實施中,每次去用戶那里裝系統,都要苦惱于log文件放在不同位置,要改property文件就要重打jar包,麻煩的緊。而如果采用 xml配置的方法,直接放在WEB-INFO下,要修改路徑,很方便。查了些資料,終于把系統的log4j改成在xml中配置啦。
使用步驟為:第一步:加入log4j-1.2.8.jar到lib下。第二步:在CLASSPATH下建立log4j.properties。第三步:在代碼中使用