日志框架
目前市面上常見的日志框架有:slf4j(Simple Logging Facade for Java)、logback、log4j、log4j2、commons-logging(Spring默認日志框架)、JUL(java.util.logging)等。
日志框架包括日志的抽象與日志的實現兩部分,其中日志的抽象推薦使用slf4j,而日志的實現推薦使用logback。Spring Boot的日志框架默認選擇的就是這兩個。
SLF4J的使用
系統開發在使用日志的時候,不應該使用日志的實現,而應該使用日志的抽象,但是日志的配置文件還是要使用日志實現框架本身的配置文件,日志使用示例代碼如下:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class HelloWorld {
public static void main(String[] args) {
Logger logger = LoggerFactory.getLogger(HelloWorld.class);
logger.info("Hello World!");
}
}
slf4j的調用結構如下:
日志統一問題
當一個項目集成了多個框架,而這些框架大部分都集成了日志框架,就會出現一個項目底層使用多種日志框架的問題,slf4j給出了這個問題的解決辦法,如下圖所示:
日志框架統一為slf4j的步驟:①排除其他框架集成的日志框架;②用中間包來替換原來的日志框架;③導入slf4j框架的其他實現。
Spring Boot的日志
Spring Boot Starter的maven依賴:
< dependency >
< groupId >org.springframework.boot< /groupId >
< artifactId >spring-boot-starter< /artifactId >
< version >2.7.7< /version >
< scope >compile< /scope >
< /dependency >
Spring Boot底層的日志依賴關系圖:
Spring Boot使用的日志依賴:
< dependency >
< groupId >org.springframework.boot< /groupId >
< artifactId >spring-boot-starter-logging< /artifactId >
< version >2.7.7< /version >
< scope >compile< /scope >
< /dependency >
由上圖可以看出,Spring Boot自動適配了所有的日志,而且底層默認使用了slf4j+logback記錄日志,引入其他框架的時候,只需要把這個框架依賴的日志框架移除即可。
Spring Boot默認日志框架示例代碼如下:
package com.brevity;
import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class LoggingApplicationTests {
// 獲取日志記錄器,參數建議使用當前類
Logger logger = LoggerFactory.getLogger(LoggingApplicationTests.class);
@Test
void logTest() {
// Spring Boot默認使用的是info級別的日志
logger.trace("跟蹤日志");
logger.debug("debug日志");
logger.info("info日志");
logger.warn("warn日志");
logger.error("error日志");
}
}
修改默認的日志級別只需要在配置文件中修改即可,例如在application.properties文件中添加如下代碼:
# 調整日志級別
logging.level.com.brevity=trace
# 修改控制臺輸出的日志格式
# %d表示日期時間,%thread表示線程名,%-5level:級別從左顯示5個字符寬度
# %logger{50} 表示logger名字最長50個字符,否則按照句號分割,%msg:日志消息,%n是換行符
logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50
-
Boot
+關注
關注
0文章
149瀏覽量
35779
發布評論請先 登錄
相關推薦
評論