Springboot日誌相關
市場上的日誌框架
日誌門面(日誌抽象層) | 日誌實現 |
---|---|
JCL(Jakarta Commons Logging)、SLF4j(Simple Logging Facade for Java)、jboss-logging | Log4j、JUL(Java.util.logging)、Log4j2、Logback |
- Log4j、Logback 、SLF4j都是出自同一個人的手,Logback時Log4j的升級版
- 建議使用SLF4j+Logback的組合作為日誌框架
- Springboot底層使用的是SLF4j+Logback的組合
SLF4j
- 開發的時候應該呼叫日誌的抽象層(SLF4j),不應該使用日誌的實現層(Logback),當然也可以使用其他實現層,SLF4j與其他的實現層的關係在slf4j的官網(http://slf4j.org/manual.html)上有一張圖
- 使用
public class SLF4jTest {
public static void main(String[] args){
Logger logger = LoggerFactory.getLogger(SLF4jTest.class);
logger.info("測試------");
}
}
同一個系統統一日誌框架
在一個系統中,可以能引入很多的jar包,如:mybatis、Spring等等,但是他們底層使用的日誌框架不一樣,這個要怎麼解決呢?
在sfl4j的官網(http://slf4j.org/legacy.html)上也能找到解決方案:
我們只要使用對應的日誌jar包替換掉其他框架的日誌jar包,就可以達到這個效果,打個比方:
如果mybatis中使用的是Commons logging API,我們要替換掉這個jar包,首先就得排除掉這個jar包,然後引入jcl-over-slf4j.jar的包,其實jcl-over-slf4j中會包含Commons logging API中的所有類以及方法,只是實現不一樣
sfl4j Springboot配置
- logging.level.com.example=info
com.example包下的,只要是info級別以上的日誌都輸出 - logging.path=/var/log
指定日誌輸出在/var/log的目錄下 - logging.file=D:\my.log
指定日誌輸出到my.log的日誌檔案下 - logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
控制檯輸出的日誌的格式 - logging.pattern.file=%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
指定檔案中輸出的日誌的格式
替換日誌框架
先看一張圖(通過pom檔案右鍵 —> Diagrams —> Show Dependencies檢視)
這張圖是我現在的Springboot的依賴圖,然後我要怎麼做呢?
分析:
- 這裡是用slf4j作為抽象層,logback作為實現層 (可以看前面的圖片確定)
- 這裡將log4j的api通過log4j-to-slf4j封裝成了slf4j
如果要將logback替換掉,那就需要先將logback的依賴移除,然後依然使用slf4j作為抽象層的話,就不要移除slf4j,然後引入對應的中間包
,這樣即可完成替換
相關文章
- DB2日誌相關DB2
- EBS相關日誌和引數
- Linux 查詢 日誌 相關命令Linux
- PG wal日誌LSN相關函式函式
- 重做日誌檔案的相關操作
- 重做日誌(redo log)相關總結
- 從原始碼角度看CPU相關日誌原始碼
- MySQL慢查詢日誌相關設定MySql
- oracle cluster叢集相關日誌檢視Oracle
- linux日誌相關的具體命令Linux
- mysql二進位制日誌相關引數MySql
- SpringBoot 日誌框架Spring Boot框架
- SpringBoot日誌管理Spring Boot
- springboot日誌篇Spring Boot
- 系統日誌及資料庫相關資訊收集資料庫
- 55.SpringBoot日誌Spring Boot
- SpringBoot日誌實現Spring Boot
- UI自動化學習筆記- 日誌相關操作UI筆記
- 針對Nginx日誌的相關運維操作記錄Nginx運維
- zt_日誌檔案相關等待_log file waitAI
- springboot 相關注解Spring Boot
- 關於Oracle LOGMNR找不到dml操作及補充日誌相關Oracle
- SpringBoot使用ELK日誌收集Spring Boot
- SpringBoot專案整合日誌Spring Boot
- logstash收集springboot日誌Spring Boot
- Springboot漫遊日誌(1)Spring Boot
- SpringBoot中的slf4j日誌依賴關係Spring Boot
- Linux 檔案系統與日誌分析的相關知識Linux
- SpringBoot | SpringBoot 是如何實現日誌的?Spring Boot
- SpringBoot指定日誌檔案和日誌Profile功能Spring Boot
- Mariadb之日誌相關配置
- SpringBoot(一)啟動相關Spring Boot
- SpringBoot-相關問題Spring Boot
- SpringBoot--MVC相關配置Spring BootMVC
- 檢查REDO日誌相關資訊並生成HTML檔案的指令碼HTML指令碼
- SpringBoot記錄HTTP請求日誌Spring BootHTTP
- SpringBoot切換預設日誌框架Spring Boot框架
- 日誌檔案和歸檔日誌檔案的關係以及如何切換日誌