005_logback介绍
1. 什么是logback
1.1. Logback由log4j的創始人設計的又一個開源日志組件。以十多年設計工業級記錄系統的經驗為基礎, 所創建的logback比現有任何記錄系統更快、占用資源更少。
1.2. Logback提供獨特而實用的特性, 比如: Marker、參數化記錄語句、條件化堆棧跟蹤和強大的事件過濾功能。以上列出的僅僅是logbook實用特性的一小部分。
1.3. 對于自身的錯誤報告, logback依賴狀態(Status)對象, 狀態對象極大地簡化了故障查找。
1.4. Logback-core附帶了Joran, Joran是個強大的、通用的配置系統, 你可以在自己的項目里使用Joran以獲得巨大的作用。
2. logback官網
2.1. 地址: https://logback.qos.ch/
3. 下載logback
3.1. 點擊Download
3.2. 點擊Maven central
3.3. 點擊logback-core
3.4. 點擊1.2.3
3.5. 點擊下載logback-core-1.2.3.jar和它的源碼包logback-core-1.2.3-sources.jar
3.6. 返回到logback目錄, 點擊logback-classic
3.7. 點擊1.2.3
3.8. 點擊下載logback-classic-1.2.3.jar和它的源碼包logback-classic-1.2.3-sources.jar
?
3.9. 返回到logback目錄, 點擊logback-access
3.10. 點擊1.2.3
3.11. 點擊下載logback-access-1.2.3.jar和它的源碼包logback-access-1.2.3-sources.jar
4. 入門例子
4.1. 使用logback要添加slf4j-api.jar、logback-core.jar和logback-classic.jar這三個jar包。logback-core是logback的核心模塊。logback-classic依賴核心模塊。
4.2. 新建一個名為LogbackRuMen的Java項目, 同時添加相關jar包
4.3. 編寫HelloWorld.java
package com.zr.rm;/**我們導入了slf4j的LoggerFactory和Logger類, 根本都沒有導入logback, 就好像logback* 不存在一樣, 實際上底層卻使用的是logback日志記錄。*/ import org.slf4j.Logger; import org.slf4j.LoggerFactory;public class HelloWorld {public static void main(String[] args) {Logger logger = LoggerFactory.getLogger(HelloWorld.class);System.out.println(HelloWorld.class.getName());logger.debug("logback入門");} }4.4. 運行結果
4.5. 本例中, 調用LoggerFactory類的靜態方法getLogger取得一個Logger實例, 將該實例賦值給變量logger。這個logger被命名為"com.rjbd.rm.HelloWorld"。
4.6. 調用這個logger的debug方法并傳遞參數"logback入門"。我們稱之為main方法包含了一條消息是"logback入門"、級別是DEBUG的記錄語句。
4.7. 本例中, 我們導入了slf4j的LoggerFactory和Logger類, 并沒有引用任何logback的類。多數情況下, 只要涉及到記錄, 你只需要引用SLF4J的類, 基本可以忽略logback的存在。
4.8. 運行后會在控制臺輸出下面的一行文字。得益于logback提供了默認配置策略, 當沒有發現默認配置文件時, logback會為根(root)logger添加一個ConsoleAppender。
5. Logback內部狀態例子
5.1. Logback可以通過內置的狀態系統來報告其內部狀態。通過StatusManager組件可以訪問logback生命期內發生的重要事件。目前, 我們調用StatusPrinter類的print()方法來打印logback的內部狀態。
5.2. 在LogbackRuMen的Java項目里編寫LogbackStatus.java
package com.rjbd.rm;import org.slf4j.LoggerFactory; import ch.qos.logback.classic.LoggerContext; import ch.qos.logback.core.util.StatusPrinter;public class LogbackStatus {public static void main(String[] args) {// 日志上下文LoggerContext context = (LoggerContext)LoggerFactory.getILoggerFactory();// 打印Logback內部信息StatusPrinter.print(context);} }5.3. 運行結果
5.4. Logback說它沒有找到配置文件logback-test.xml、logback.xml和logback.groovy, 于是用默認策略進行配置, 即用一個基本的ConsoleAppender。Appender類可被視為輸出目的地的。
5.5. Appender包含許多不同類型的目的地, 包括控制臺、文件、Syslog、TCP套接字和其他。用戶可以很容易地自定義Appender。
5.6. 當發生錯誤時, logback將自動在控制臺上打印其內部狀態。
5.7. 之前的兩個示例相當簡單, 大型程序里真實記錄志情況也不會有太大區別。記錄系統的基本模式不會改變, 可能改變的是配置過程。也許你想按照自己的需要來定制或配置logback, 之后的章節會討論配置logback。
5.8. 在本例中, 我們調用StatusPrinter.prin()方法來打印logback的內部狀態。在診斷與logback相關的問題時, logback的內部狀態信息會非常有用。
6. 在應程序里啟用logback記錄的三個必需步驟
6.1. 配置logback環境(添加相關jar包和配置logback.xml)。
6.2. 在每個需要執行記錄的類里, 調用org.slf4j.LoggerFactory類的getLogger()方法獲取一個Logger實例, 以當前類名或類本身作為參數。
6.3. 調用取得的logger實例的打印方法, 即debug()、info()、warn()和 error(), 把記錄輸出到配置里的各appender。
總結
以上是生活随笔為你收集整理的005_logback介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 003_commons-logging与
- 下一篇: 006_logback体系结构