java logging--java記錄日誌

這是在CSDN第一篇博客,菜鳥一枚,高手勿噴。只是將自己的學習經歷,一點點記錄下來,正如下面將要講的記錄日誌(logger.info("codeboy, everyday learning....."))。

以前編寫小程序,不在乎記錄日誌,很多時候只是使用簡單的系統記錄日誌功能,即PrintStream(System.out.println("some info here"))。

前幾天,突然想看看java logging。Google搜索了一番,看了看wikipedia的介紹,有了一定的瞭解。

Logging(記錄日誌)分爲三個部分:Logger,Fomatter,Handler(Appender)。Logger用來捕獲記錄信息,將其傳遞給Logging Framework;Formatrer添加格式,以待輸出,Appender用來指定輸出的目的地(控制檯,文件等)。日誌信息有6個級別:FATAL,ERROR,WARNNING,INFO,DEBUG,TRACE(很少使用)。

現在主要使用的日誌框架有:Log4J,Java Logging API(JUL),Apache Commons Logging(JCL),SLF4J。其中Log4J是具體的實現框架,JVM中含有JUL的默認實現,JCL只是一個包裝(一個Wrapper,依賴於底層實現),SLF4J則只是一個Facade(使用了Facade模式,依賴於底層實現)。瞭解了這樣一個結構層次,以後使用起來會方便很多。

很多時候編寫項目會離不開日誌記錄,很多必須要導入的.jar文件內部也使用了某個日誌框架,這樣某些日誌記錄框架的依賴文件就得包含到classpath中。以前是隻管導入.jar文件,而不用理會它的作用到底是什麼。但不能總是這樣,理解工作機制,總會對自己有所助益。

在使用SLF4J時,會使用它的橋接,因爲它只是一個facade(外表)。常用的橋接有下面幾種:

I.JCL-OVER-SLF4J.JAR(是JCL 1.1版本的替代品,從JCL轉向SLF4J時使用,即使用SLF4J的接口,而具體實現使用JUL);

II.SLF4J-JCL.JAR(由SLF4J遷移到JCL時需要);

III.LOG4J-OVER-SLF4J.JAR(從LOG4J遷移到SLF4J時使用,同JCL-OVER-SLF4J;當從LOG4J遷移到SLF4J時,將LOG4J.JAR替換爲LOG4J-OVER-SLF4J.JAR,而不需要修改一行代碼);

IV.SLF4J-JDK14.JAR(將SLF4J的調用委託給JUL,較少使用);

V.JUL-TO-SLF4J.JAR(將JUL的記錄傳遞給SLF4J,較少使用)。

    以上是自己總結的java 日誌記錄的相關知識,現在使用相關框架會輕鬆許多。其實最簡單的日誌記錄是PrintStream,它可以將信息打印到控制檯,也可以將信息輸出到文件中,當我們需求比較簡單時,使用PrintStream會是不錯的選擇。

www.dzone.com有大量的講解資料,學習文檔等,有時間大家可以多逛逛.....

晚安,Coder At Sleep Right Now.....


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章