日志框架
目前市面上常見的日志框架有: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文章
153瀏覽量
36544
發布評論請先 登錄
Spring框架的設計理念
啟動Spring Boot項目應用的三種方法
Spring Boot嵌入式Web容器原理是什么
java 日志框架Spring Boot分析
Spring Boot框架錯誤處理
spring mvc框架介紹

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

Spring Boot的啟動原理

評論