1. 程式人生 > >微服務架構Day02-SpringBoot日誌slf4j

微服務架構Day02-SpringBoot日誌slf4j

# 日誌框架 |日誌門面(介面,日誌抽象層 )|日誌實現| |--|--| |JCL(Jakarta Commons Logging)、slf4j(Simple Logging Facade for Java)、jboss-logging|log4j、JUL(java.util.logging)、log4j2、Logback| - 日誌門面:slf4j - 日誌實現:Logback **SpringBoot選用的是slf4j和Logback** # slf4j的使用 - **如何在系統中使用slf4j:** 1.日誌記錄方法的呼叫,不應該呼叫日誌實現類,應該呼叫日誌抽象層裡面的方法。給系統匯入slf4j的jar和Logback的實現jar。 2.每一個日誌的實現框架都有自己的配置檔案。使用slf4j以後,**配置檔案還是使用日誌實現框架的配置檔案**。 - **問題**:使用slf4j+logback需要統一轉換日誌記錄,別的框架使用其它日誌框架的需要一起使用slf4j進行輸出: 1.將系統中的其他框架日誌先替換出去, 2.用面向slf4j的jar替換原有的日誌框架, 3.匯入slf4j的jar和Logback的實現jar。 # SpringBoot日誌關係 - SpringBoot底層也是使用slf4j+logback的方式進行日誌記錄 - SpringBoot將其它日誌都替換成slf4j - 如果需要引入其它框架,一定要把這個框架的預設日誌框架依賴移除。 **SpringBoot能自動適配所有的日誌,而且底層使用的是slf4j+logback的方式記錄日誌,引入其它框架的時候,只需要將這個框架依賴的日誌框架排除掉即可。** # 日誌使用 - 預設配置 |logging.file | logging.path |Example|Description| |--|--|--|--| | none | (none) ||只在控制檯輸出 |指定檔名|(none)|my.log|輸出日誌到my.log檔案| |(none)|指定目錄|/var/log|輸出到指定目錄的spring.log檔案中| - 指定配置 給類路徑下放上每個日誌框架指定的配置檔案,SpringBoot就不使用本身預設的配置。 |Logging System|Customization| |--|--| | Logback |logback-spring.xml, logback-spring.groovy, logback.xml or logback.groovy | |Log4j2|log4j2-spring.xml or log4j2.xml| |JDK(Java Util Logging)|logging.properties| - logback.xml:會直接被日誌框架識別載入 - logback-spring.xml **(推薦)**:日誌框架不能直接載入日誌配置項,由springBoot解析日誌配置只使用SpringBoot高階功能SpringProfile,就可以通過 ```xml ``` 設定指定某段配置只在某個環境下生效 ### 切換日誌框架 - 可以按照slf4j的日誌適配圖進行相關的切換-替換加引入 - 切換log4j2:由於SpringBoot底層有log4j2的框架,只要在依賴中排出之前的starter-logging