JAVA 日誌系統簡介--轉

日 志,源於log,有航海日誌的意思。指記錄海員記錄天天的行程,生活及發生的事件。在軟件開發領域,用來監控代碼中變量變化,跟蹤 代碼運行的軌跡,在開發環境中擔當調試器做用,向控制檯或文件輸出信息。php

 

幾乎全部的軟件開發語言(平臺)都有本身的日誌系統,java,.net,ruby,php等。在java領 域,存在大量的日誌組件,open-open收 錄了21個日誌組件。html

從 功能上講,這些能夠分爲三類,一是日誌工具類,它實現了日誌的記錄,格式化和級別的劃分,表明爲 logback,simplelog。二是日誌系統,提供了完整的框架功能並實現了日誌記錄。表明爲jul(jdk提供的日誌框 架),log4j(apache開源項目)。三是抽象整合類,它提供了一組接口,完成日誌功能,經過包裝其餘日誌工具或系統來工做jcl(apache開 源組件),slf4j。java

 

從歷史上講,log4j出現最先,Ceki Gülcü是其創造者。自java1.4開始,jdk提供了java.util.logging 類庫,提供了一個完整的日誌框架,在設計上要比log4j要更清晰。 這個時候,除此以外,還有一些其餘日誌組件,java領域歷來不缺乏輪子,老是有人在發明輪 子,輪子多了,就會產生混亂,就會有人站出來,要一統江湖,因而,jcl,apache一個開源的日誌組件誕生了,它提供了一組日誌系統的接口,經過對 log4j,jul和simplelog進行包裝,提供日誌功能。這樣,開發的時候,只須要使用jcl,經過配置,靈活選擇底層實現。這樣,對於開發人員 來講,開發更簡單了些。看起來一切太平了,可Ceki Gülcü認爲,應該有一個更好的日誌框架。log4j通過這麼久的發展,已經成爲了一個巨人,亦 傷痕累累,從外面看,經典,莊重,強壯,從內部看,卻有着一根根的飛線(ThinkPad),充滿了代碼的壞味道。或許他沒有勇氣來改造這個巨人,離開也 許是最好的選擇,因而,出來,建立了slf4j,來取代jcl,建立了logback,來取代log4j。目前,log4j和jul應用最爲廣 泛,slf4j做爲新興的抽象層,整合logback,以其簡潔,快速,正被愈來愈多的頂級項目使用。web

 

表明日誌組件簡要介紹。apache

Log4j,歷史悠久,應用普遍,被移植到多種語言及平臺,功能強大,在衆多的日誌框架 中,仍佔據着主導地位。ruby

Jul,jdk提供的日誌框架,設計精良,和jdk緊密結合,控制靈活,使用簡單。框架

Jcl,提供了日誌的抽象層,能夠整合多種實現。但有classloader問題。jvm

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

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

 

項目選擇思考。

若是是單一的項目,如桌面應用,採 用jul,免配置,控制靈活。

若是是web開發,宜採用 log4j,由於系統已經有了不少的配置文件,不在意多一個,並且log4j能夠脫離任何組件,不像jul,和jvm緊密結合在一塊兒。

若是是多項目整合開發,宜採用 slf4j,一是它能夠整合其餘遺留日誌組件,二是其提供的抽象層,爲未來的開發提供了靈活性。

 

參考資料:

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

2.Java開 源日誌組件列表。連接

3.Slf4j官 方網站。連接

4.Logback官 方網站。連接

5.Log4j官 方網站。連接

6.Jcl官 方網站。連接

7.Sun官 方網站。連接

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



asdtiang 2010-01-12 17:21 發表評論
相關文章
相關標籤/搜索