一文看懂Logback的簡單介紹

一文看懂Logback的簡單介紹

Logback的使用

Logback是log4j的改良版,相比log4j,logback是有優勢的,後面會簡單介紹。

Logback簡介

1、logback和log4j是同一個作者,logback可以看作是log4j的升級版

2、logback分為三個模塊, logback-core, logback-classic 和logback-access,其中 logback-core是核心,其他兩個模塊依賴core,這個logback-classic是log4j的改善版本,並且原生實現了SLF4J門面(具體參考前文:SLF4J實現原理(簡單分析))。模塊logback-access可以集成於Servlet容器,比如Tomact和Jetty。

3、你可以基於logback-core自己創建其他的模塊。

Logback相比log4j的優勢,

1、比log4j更快,重寫了內核,在一些關鍵路徑上性能提升10倍,內存佔用也更少。

2、經過大量的測試,和log4j測試不在一個量級。

3、logback-classic是SLF4J的實現,切換其他日誌框架非常方便,

4、文檔豐富並且不斷更新,支持Groovy風格的配置文件

6、配置文件自動重新加載,如果更新了配置文件,logback-classic可以自動重新加載。

7、自動刪除日期較老的日誌文件,maxHistory屬性,你可以控制已經產生日誌文件的最大數量。如果設置maxHistory為12,那那些log文件超過12個月的都會被自動移除。

8、自動壓縮歸檔的日誌文件,壓縮文件是異步進行,不影響應用。

9、配置文件可以處理不同的環境開發,測試,生產),這樣一個配置文件就可以適應多個環境。

10、SiftingAppender(一個非常多功能的Appender)
它可以用來分割日誌文件根據任何一個給定的運行參數。如,SiftingAppender能夠區別日誌事件跟進用戶的Session,然後每個用戶會有一個日誌文件。

Logback的簡單應用,

在上文SLF4J實現原理(簡單分析)中有個簡單的例子,此文不再重複。


Logback的配置

配置加載的順序,上下文初始化的時候會調用ContextInitializer,在這個類中的方法findURLOfDefaultConfigurationFile是用來加載默認的配置文件,

  • 先從系統的屬性中獲取鍵為logback.configurationFile的值,如果有,就加載指定的配置文件,
  • 如果沒有設置,會在classpath中找文件logback-test.xml
  • 如果logback-test.xml不存在,搜索logback.groovy配置文件
  • 如果logback.groovy不存在,最後查找logback.xml
  • 如果以上配置文件不存在,會用SPI的方式加載classpath下的Configurator接口的實現類。
  • 最後,如果以上都沒有成功,會默認創建BasicConfigurator實例,BasicConfigurator默認配置了ConsoleAppender,也就是隻能輸出到控制檯。

logback的配置

1、最簡單的使用就是不使用任何配置文件,用默認的Console輸出日誌,

2、使用logback.xml配置文件

最基本的配置是一個configuration裡面有零個或多個appender,零個或多個logger和最多一個root標

籤組成。(logback是對大小寫敏感的)

一文看懂Logback的簡單介紹

logback的配置文件組成

  • configuration是根標籤,有三個屬性debug,scan和scanPeriod,debug=true時會打印出logback內部的狀態,scan=true表示如果配置修改了,會重新加載模式為true,scanPeriod為掃描時間間隔。
  • logger標籤用來設置某一個包或具體的某一個類的日誌輸出,有個level屬性,用來設置日誌級別,可選值為TRACE,DEBUG,INFO,WARN, ERROR, ALL 和 OFF。logger標籤可以包括零個或者多個appender-ref標籤。
  • root標籤配置root logger,這個標籤和logger一樣有個level,也有零個或者多個appender-ref標籤。
  • Appender標籤,負責寫日誌的組件,有兩個必要屬性name和class,name指定appender名稱,class指定appender的全限定名。這個Appender可以有零個或者多個layout,encoder和filter標籤。appender的class 類型主要有三種:ConsoleAppenderFileAppenderRollingFileAppender。
一文看懂Logback的簡單介紹

appender標籤

每個標籤都有很多細節,就不在本文囉嗦的寫了,如果需要請參考logback的官網。寫一個簡單的logback的開發配置

一文看懂Logback的簡單介紹

logback配置

如果項目中有複雜的需求,可以去官網找相應的文檔,不變的永遠是變化,軟件可能隨時升級,官方的文檔也會不斷的更新。


分享到:


相關文章: