日志框架
目前市面上常見的日志框架有:slf4j(Simple Logging Facade for Java)、logback、log4j、log4j2、commons-logging(Spring默認日志框架)、JUL(java.util.logging)等。
日志框架包括日志的抽象與日志的實現(xiàn)兩部分,其中日志的抽象推薦使用slf4j,而日志的實現(xiàn)推薦使用logback。Spring Boot的日志框架默認選擇的就是這兩個。
SLF4J的使用
系統(tǒng)開發(fā)在使用日志的時候,不應(yīng)該使用日志的實現(xiàn),而應(yīng)該使用日志的抽象,但是日志的配置文件還是要使用日志實現(xiàn)框架本身的配置文件,日志使用示例代碼如下:
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的調(diào)用結(jié)構(gòu)如下:
日志統(tǒng)一問題
當一個項目集成了多個框架,而這些框架大部分都集成了日志框架,就會出現(xiàn)一個項目底層使用多種日志框架的問題,slf4j給出了這個問題的解決辦法,如下圖所示:
日志框架統(tǒng)一為slf4j的步驟:①排除其他框架集成的日志框架;②用中間包來替換原來的日志框架;③導入slf4j框架的其他實現(xiàn)。
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底層的日志依賴關(guān)系圖:
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 {
// 獲取日志記錄器,參數(shù)建議使用當前類
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文件中添加如下代碼:
# 調(diào)整日志級別
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
+關(guān)注
關(guān)注
0文章
153瀏覽量
36451
發(fā)布評論請先 登錄
相關(guān)推薦
Spring框架的設(shè)計理念
啟動Spring Boot項目應(yīng)用的三種方法
Spring Boot嵌入式Web容器原理是什么
java 日志框架Spring Boot分析
Spring Boot框架錯誤處理
spring mvc框架介紹

Spring Boot定時任務(wù)的重寫方法
Spring Boot從零入門1 詳述
Spring Boot特有的實踐
Spring Boot Web相關(guān)的基礎(chǔ)知識
Spring Boot Actuator快速入門
Spring Boot啟動 Eureka流程

Spring Boot的啟動原理

Spring Cloud Gateway網(wǎng)關(guān)框架

評論