LOGBack小結

之前一直用log4j,工作後接觸到logback,順便總結一下

參考http://blog.csdn.net/conquer0715/article/details/9365491

基礎

SLF4J不是具體的日誌解決方案,它只服務於各種日誌系統。按照官方的說法,SLF4J是一個用於日誌系統的簡單Facade,允許最終用戶在部署其應用時使用其所希望的日誌系統,並可以靈活切換。
首先了解一下SLF4J、Log4j和LOGBack的區別:
首先,這3個都是同一個作者開發的,其中LOGBack用來替代log4j,SLF4J用來替代Commons-logging。

Commons-logging
Apache最早提供的日誌門面接口。避免和具體的日誌方案直接耦合。類似於JDBC 的api 接口,具體的JDBC driver 實現由各數據庫提供商實現。通過統一接口解耦,不過其內部也實現了一些簡單日誌方案。

SLF4J
全稱爲Simple Logging Facade for JAVA:java簡單日誌門面。SLF4J提供一個日誌接口,你可以使用不同的類來實現該接口,Log4j和LogBack就是不同的實現。

Log4j
Apache的一個開放源代碼項目,使用Log4j可以控制日誌信息輸送目的地、、輸出格式、生成過程等。是一種經典的日誌解決方案。內部把日誌系統抽象封裝成Logger 、appender 、pattern 等實現。可以通過配置文件輕鬆的實現日誌系統的管理和多樣化配置。

LOGBack
Logback是另一個開源日記組件。logback當前分成三個模塊:logback-core,logback- classic和logback-access。其中logback-core是其它兩個模塊的基礎模塊,logback-classic是log4j的改良,logback-classic完整實現SLF4J API,使你可以方便地更換成其它日誌系統如log4j或JDK14 Logging。logback-access訪問模塊與Servlet容器集成提供通過Http來訪問日誌的功能。

Log4J vs. LOGBack
LOGBack作爲一個通用可靠、快速靈活的日誌框架,將作爲Log4j的替代和SLF4J組成新的日誌系統的完整實現。總的來說就是速度更快,性能更好。官網上稱LOGBack在關鍵路徑上執行速度是log4j 的10 倍,且內存消耗更少。具體優勢見:http://logback.qos.ch/reasonsToSwitch.html
此外,LOGBack的所有文檔都是免費提供的,不象Log4J那樣只提供部分免費文檔而需要用戶去購買付費文檔。

需要注意
使用日誌配置的時候一定要明白需求,同時避免衝突。
如使用SLF4j 的時候爲了避免衝突,一定要保障只有一種實現類jar包在裏面。
有任意兩個實現slf4j 的包同時出現,那就有可能釀就悲劇,你可能會發現日誌不見了、或都打到控制檯了。原因是這兩個jar包裏都有各自的org.slf4j.impl.StaticLoggerBinder,編譯時候綁定的是哪個是不確定的。這個地方要特別注意!!!

用法小結

  1. 下載地址:
    slf4j: http://www.slf4j.org/download.html
    logback: http://logback.qos.ch/download.html

  2. 需要的配置文件和組件包,下面三個 jar 文件和一個 xml文件都是要放在項目的 ClassPath 上。
      slf4j-api-1.5.11.jar
      logback-core-0.9.20.jar
      logback-classic-0.9.20.jar
      logback.xml 或 logback-test.xml (類似於 log4j.properties/log4j.xml)
    Logback 先找 logback-test.xml,沒有則找 logback.xml 文件,都找不到就使用 BasicConfigurator 基本配置,BasicConfigurator 就是相當於等會貼出的 logback.xml 文件內容的配置。這裏我們用 logback.xml 配置文件,以前的 log4j.properties 文件可以用 PropertiesTranslator 轉換成 logback.xml 文件內容。

發佈了110 篇原創文章 · 獲贊 19 · 訪問量 46萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章