asdtiang的博客 感謝blogjava提供的博客交流平臺

          JAVA 日志系統(tǒng)簡介--轉(zhuǎn)

          Posted on 2010-01-12 17:21 asdtiang 閱讀(2110) 評論(0)  編輯  收藏 所屬分類: java se

          日 志,源于log,有航海日志的意思。指記錄海員記錄每天的行程,生活及發(fā)生的事件。在軟件開發(fā)領(lǐng)域,用來監(jiān)控代碼中變量變化,跟蹤 代碼運行的軌跡,在開發(fā)環(huán)境中擔(dān)當(dāng)調(diào)試器作用,向控制臺或文件輸出信息。

           

          幾乎所有的軟件開發(fā)語言(平臺)都有自己的日志系統(tǒng),java,.net,ruby,php等。在java領(lǐng) 域,存在大量的日志組件,open-open收 錄了21個日志組件。

          從 功能上講,這些可以分為三類,一是日志工具類,它實現(xiàn)了日志的記錄,格式化和級別的劃分,代表為 logback,simplelog。二是日志系統(tǒng),提供了完整的框架功能并實現(xiàn)了日志記錄。代表為jul(jdk提供的日志框 架),log4j(apache開源項目)。三是抽象整合類,它提供了一組接口,完成日志功能,通過包裝其他日志工具或系統(tǒng)來工作jcl(apache開 源組件),slf4j。

           

          從歷史上講,log4j出現(xiàn)最早,Ceki Gülcü是其創(chuàng)造者。自java1.4開始,jdk提供了java.util.logging 類庫,提供了一個完整的日志框架,在設(shè)計上要比log4j要更清晰。 這個時候,除此之外,還有一些其他日志組件,java領(lǐng)域從來不缺少輪子,總是有人在發(fā)明輪 子,輪子多了,就會產(chǎn)生混亂,就會有人站出來,要一統(tǒng)江湖,于是,jcl,apache一個開源的日志組件誕生了,它提供了一組日志系統(tǒng)的接口,通過對 log4j,jul和simplelog進行包裝,提供日志功能。這樣,開發(fā)的時候,只需要使用jcl,通過配置,靈活選擇底層實現(xiàn)。這樣,對于開發(fā)人員 來說,開發(fā)更簡單了些。看起來一切太平了,可Ceki Gülcü認(rèn)為,應(yīng)該有一個更好的日志框架。log4j經(jīng)過這么久的發(fā)展,已經(jīng)成為了一個巨人,亦 傷痕累累,從外面看,經(jīng)典,莊重,強壯,從內(nèi)部看,卻有著一根根的飛線(ThinkPad),充滿了代碼的壞味道。或許他沒有勇氣來改造這個巨人,離開也 許是最好的選擇,于是,出來,創(chuàng)建了slf4j,來取代jcl,創(chuàng)建了logback,來取代log4j。目前,log4j和jul應(yīng)用最為廣 泛,slf4j作為新興的抽象層,整合logback,以其簡潔,快速,正被越來越多的頂級項目使用。

           

          代表日志組件簡要介紹。

          Log4j,歷史悠久,應(yīng)用廣泛,被移植到多種語言及平臺,功能強大,在眾多的日志框架 中,仍占據(jù)著主導(dǎo)地位。

          Jul,jdk提供的日志框架,設(shè)計精良,和jdk緊密結(jié)合,控制靈活,使用簡單。

          Jcl,提供了日志的抽象層,可以整合多種實現(xiàn)。但有classloader問題。

          Slf4j,提供了jcl的超集,避免了classloader問題。

          Logback,可靠,通用,快速,靈活的java日 志工具(官方描述)。

           

          項目選擇思考。

          如果是單一的項目,如桌面應(yīng)用,采 用jul,免配置,控制靈活。

          如果是web開發(fā),宜采用 log4j,因為系統(tǒng)已經(jīng)有了很多的配置文件,不在乎多一個,而且log4j可以脫離任何組件,不像jul,和jvm緊密結(jié)合在一起。

          如果是多項目整合開發(fā),宜采用 slf4j,一是它可以整合其他遺留日志組件,二是其提供的抽象層,為將來的開發(fā)提供了靈活性。

           

          參考資料:

          1.IBM developerworks對 log4j的介紹。 鏈接

          2.Java開 源日志組件列表。鏈接

          3.Slf4j官 方網(wǎng)站。鏈接

          4.Logback官 方網(wǎng)站。鏈接

          5.Log4j官 方網(wǎng)站。鏈接

          6.Jcl官 方網(wǎng)站。鏈接

          7.Sun官 方網(wǎng)站。鏈接

          8.一 個jcl的中文說明。鏈接



          天蒼蒼,野茫茫,風(fēng)吹草底見牛羊

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


          網(wǎng)站導(dǎo)航:
          博客園   IT新聞   Chat2DB   C++博客   博問  
           

          posts - 80, comments - 24, trackbacks - 0, articles - 32

          Copyright © asdtiang

          asdtiang的博客 PaidMailz
          點擊廣告網(wǎng)賺A(每天4個廣告,每個0.0025美元,一個搜索廣告0.03美元)
          主站蜘蛛池模板: 菏泽市| 绍兴市| 弋阳县| 天峻县| 西林县| 南汇区| 大余县| 疏附县| 紫阳县| 黄冈市| 南城县| 凌海市| 吐鲁番市| 久治县| 洪江市| 庐江县| 莫力| 韶关市| 彩票| 桂阳县| 额尔古纳市| 鸡西市| 兴宁市| 徐州市| 崇州市| 长治县| 岑溪市| 镇宁| 铁力市| 英德市| 临沧市| 阿拉尔市| 永清县| 肥东县| 奉贤区| 莒南县| 辉县市| 柘荣县| 彰武县| 昌黎县| 谢通门县|