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

          JAVA 日志系統簡介--轉

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

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

           

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

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

           

          從歷史上講,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,以其簡潔,快速,正被越來越多的頂級項目使用。

           

          代表日志組件簡要介紹。

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

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

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

          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的中文說明。鏈接



          天蒼蒼,野茫茫,風吹草底見牛羊

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


          網站導航:
           

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

          Copyright © asdtiang

          asdtiang的博客 PaidMailz
          點擊廣告網賺A(每天4個廣告,每個0.0025美元,一個搜索廣告0.03美元)
          主站蜘蛛池模板: 班戈县| 玛纳斯县| 江口县| 闵行区| 安康市| 砚山县| 年辖:市辖区| 金堂县| 丹凤县| 惠安县| 宜川县| 秦安县| 鹤庆县| 康马县| 西吉县| 华宁县| 施秉县| 甘洛县| 丰城市| 乌拉特前旗| 井陉县| 阳春市| 芜湖市| 屏边| 潜江市| 玉环县| 通渭县| 许昌县| 临漳县| 治县。| 延长县| 扎兰屯市| 蓝山县| 五家渠市| 宣城市| 德保县| 岳普湖县| 红桥区| 台东市| 阿勒泰市| 维西|