log4j詳解

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

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           

          posts - 34, comments - 38, trackbacks - 0, articles - 0

          Copyright © 陳小東

          主站蜘蛛池模板: 安远县| 富宁县| 东乡县| 黄平县| 平利县| 阿尔山市| 黄龙县| 马尔康县| 浑源县| 隆回县| 建平县| 鄢陵县| 水城县| 扶绥县| 贵南县| 灵武市| 乌拉特中旗| 安福县| 长葛市| 平定县| 冕宁县| 宣汉县| 临澧县| 苍南县| 巴彦县| 临夏市| 望江县| 合肥市| 西安市| 浦县| 霍邱县| 恭城| 登封市| 且末县| 保德县| 溆浦县| 兴义市| 宣化县| 泰来县| 仙游县| 公安县|