SpringBoot日記——日誌框架篇
在項目的開發中,日誌是必不可少的一個記錄事件的組件,所以也會相應的在項目中實現和構建我們所需要的日誌框架。
而市面上常見的日誌框架有很多,比如:JCL、SLF4J、Jboss-logging、jUL、log4j、log4j2、logback等等,我們該如何選擇呢?
通常情況下,日誌是由一個抽象層+實現層的組合來搭建的。
日誌-抽象層 | 日誌-實現層 |
JCL、SLF4J、jboss-logging | jul、log4j、log4j2、logback |
而SpringBoot機智的選擇了SLF4J+Logback的組合,這個組合是當下比較合適的一組(log4j2其實很厲害,但是太厲害導致我駕馭不了~)
SLF4J使用
當我們在使用SpringBoot時,同樣可能還會調用其他的框架,比如:Spring+Mybatis等等,這些框架中都有自己底層的日誌框架在使用,所以,我們需要在引用的同時,將他們的日誌框架排除掉即可,如下:
(截取模糊,湊合看先~)
1. 按照默認的配置,我們來寫個測試類看一下:
可以看到,日誌只輸出了info、warn、error。也就是說SpringBoot默認是設置info級別。
那麽,按照我們的需要,要如何修改這個日誌輸出級別呢?如下,按照你需要的可以配置,輸出在控制臺的日誌的輸出級別,一般情況下只需要默認即可。
logging.level.com.atguigu=trace
2.配置日誌生成的路徑及日誌名稱
在項目的運行中,我們不可能一直看著控制臺,而且日質量會很大,轉瞬即逝的~
那麽,我們需要指定我們需要的日誌名稱以及日誌生成的路徑,用到兩個配置,都是在application.properties/yml中寫,如下:(都不設置的話,不生成日誌)
# 按照默認的名稱spring.log,生成到指定路徑及日誌。
logging.path=output/logs
# 不指定的情況下默認生成在項目根目錄,按照配置生成所需的日誌名稱
logging.file=D:/ooodin.log
3.日誌的格式配置
首先來看默認輸出的格式:
# %d-時間格式、%thread-線程、%-5level-從左5字符寬度、%logger{50}-日誌50個字符、%msg-信息、%n-換行
# 修改在控制臺輸出的日誌格式
logging.pattern.console=%d{yyyy-MM-dd} [%thread] %-5level %logger{50} -%msg%n
# 修改輸出到文件的日誌格式
logging.pattern.file=%d{yyyy/MM/dd} === [%thread] == %-5level == %logger{50} == %msg%n
輸出:
4.配置自定義log信息
如果想用自己的log配置,不用系統默認的,那麽只需要按照官方要求,將該配置文件放在所需類的目錄下即可,也可以在resource中配置全局的。
然而官方推薦我們在這些命名中,使用帶有spring的擴展名,它會被SpringBoot框架識別(不寫的單會被日誌框架識別),並且可以使用其相應的功能,比如根據環境來使用某段配置:
這是官方的圖~
更多日誌的配置及應用,後邊我們再議~
SpringBoot日記——日誌框架篇