日志框架
目前市面上常見的日志框架有: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)一問題
當(dāng)一個項目集成了多個框架,而這些框架大部分都集成了日志框架,就會出現(xiàn)一個項目底層使用多種日志框架的問題,slf4j給出了這個問題的解決辦法,如下圖所示:
日志框架統(tǒng)一為slf4j的步驟:①排除其他框架集成的日志框架;②用中間包來替換原來的日志框架;③導(dǎo)入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ù)建議使用當(dāng)前類
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文章
150瀏覽量
35949
發(fā)布評論請先 登錄
相關(guān)推薦
Spring框架的設(shè)計理念
啟動Spring Boot項目應(yīng)用的三種方法
Spring Boot嵌入式Web容器原理是什么
java 日志框架Spring Boot分析
Spring Boot框架錯誤處理
spring mvc框架介紹
![<b class='flag-5'>spring</b> mvc<b class='flag-5'>框架</b>介紹](https://file1.elecfans.com//web2/M00/A6/EA/wKgZomUMQTuAV2U3AAAUlD6RiPI602.jpg)
Spring Boot定時任務(wù)的重寫方法
Spring Boot從零入門1 詳述
Spring Boot特有的實踐
Spring Boot Web相關(guān)的基礎(chǔ)知識
Spring Boot Actuator快速入門
Spring Boot啟動 Eureka流程
![<b class='flag-5'>Spring</b> <b class='flag-5'>Boot</b>啟動 Eureka流程](https://file1.elecfans.com/web2/M00/A7/86/wKgaomUkx7OAdMOGAAIBWIj8ao0506.jpg)
Spring Boot的啟動原理
![<b class='flag-5'>Spring</b> <b class='flag-5'>Boot</b>的啟動原理](https://file1.elecfans.com/web2/M00/A9/C0/wKgZomUovNCAdZmWAADhZidr2zI277.jpg)
Spring Cloud Gateway網(wǎng)關(guān)框架
![<b class='flag-5'>Spring</b> Cloud Gateway網(wǎng)關(guān)<b class='flag-5'>框架</b>](https://file1.elecfans.com/web2/M00/04/A6/wKgaombGkiKAAwa1AAE-bJwRAe8680.png)
評論