log4j詳解

          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。第三步:在代碼中使用

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

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

          Copyright © 陳小東

          主站蜘蛛池模板: 承德市| 县级市| 梅州市| 平度市| 江油市| 泾川县| 贵南县| 忻城县| 上思县| 苏尼特右旗| 盱眙县| 墨脱县| 奈曼旗| 钟山县| 泾源县| 南康市| 邓州市| 九寨沟县| 嘉荫县| 涡阳县| 枞阳县| 桐城市| 启东市| 界首市| 收藏| 额济纳旗| 南开区| 景泰县| 郁南县| 南安市| 彩票| 炎陵县| 安徽省| 垫江县| 栾川县| 临西县| 上犹县| 县级市| 临猗县| 绥滨县| 勐海县|