天天看點

SpringBoot 使用 slf4j+logback 進行日志管理

  系統日志是記錄系統中硬體、軟體和系統問題的資訊,同時還可以監視系統中發生的事件。使用者可以通過它來檢查錯誤發生的原因,或者尋找受到攻擊時攻擊者留下的痕迹。系統日志包括系統日志、應用程式日志和安全日志。-- 百度百科

  日志的管理是系統很重要的一部分,千萬不可忽略其重要性。完整的日志将會在系統維護中起着異常重要的作用,就好像磨刀不誤砍柴工一樣,日志就像對系統進行分析的工具,工具便捷了,對系統分析起來就能達到事半功倍的效果。

  現代的應用程式已經離不開日志系統,是以學會正确高效地配置一套日志系統是一位後端開發工程師必備的技能。本篇文章我将逐漸講解使用 slf4j+logback 來對 SpringBoot 項目進行日志管理,僅作為參考,歡迎大家提出意見。

  當今Java程式中常見的日志架構有:Log4j、J.U.L(jdk-logging)、J.C.L(commons-logging)、Slf4j、Logback、Log4j2。一共是2個日志接口标準和4個具體的實作。具體内容可參見大佬文章 -- Java日志架構演化曆史

SpringBoot 使用 slf4j+logback 進行日志管理

  之前最流行的搭配是使用 J.C.L+Log4j 的形式,從目前趨勢來看,越來越多的開源項目逐漸轉向了 slf4j+logback,是以本篇文章主要講解 slf4j+logback 的實作方式,其它實作形式大家感興趣可以自行百度。

  logback 是一個開源的日志元件,同樣是由log4j的作者設計完成的,擁有更好的特性,是用來取代log4j的一個日志架構。它擁有更快的實作、更充分的測試、更充分的文檔、更細粒度的日志管理,是以讓它現在變得越來越受歡迎。

  logback 有三個主要子產品:   

    logback-core:是logback-access,logback-classic兩個子產品的基礎。

    logback-classic:它是log4j的一個改良版本,同時它完整實作了slf4j API,使我們可以在其他日志系統,如log4j和JDK14 Logging中進行轉換。

    logback-access:通路子產品和Servlet容器內建,為tomcat等提供通過Http來通路日志的功能。

  如果項目使用了 spring-boot-starter,那麼依賴已經添加不必再手動引入,否則需要自己手動添加依賴:

  

SpringBoot 使用 slf4j+logback 進行日志管理

   否則要手動添加maven依賴:

  在 resources 檔案夾下建立 logback-spring.xml 檔案:

  配合多環境配置檔案:application.yml、application-dev.yml、application-pro.yml

  在主配置檔案中具體選擇使用不同的環境,application.yml:

  基本結構如下:

SpringBoot 使用 slf4j+logback 進行日志管理

這裡推薦一個學習位址 -- Javaschool

關于 logback.xml 和 logback-spring.xml 的差別,參見大佬文章 -- logback.xml 和 logback-spring.xml 的差別

在項目中使用log有兩種方法:1.添加Lombok依賴,通過注解引入;2.通過工廠方式使用。

簡單效果如下:

SpringBoot 使用 slf4j+logback 進行日志管理

 輸出日志:

SpringBoot 使用 slf4j+logback 進行日志管理

到這裡本文章基本就結束了,最後再給大家推薦一個B站up視訊 -- 使用 logback 輸出日志

參考文章:https://www.cnblogs.com/ergwang/p/14600913.html

繼續閱讀