日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

SpringBoot与日志配置

發布時間:2025/3/12 javascript 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringBoot与日志配置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言:
前文我們介紹了配置文件的原理還有如果切換配置文件的環境,個人覺得歸納為一手冊,要用的時候查一下就好了。不然記那么多挺麻煩的。。

1.日志

1、日志框架

老生常談,什么是日志;我們平時用System.out.println(“xxxxxx”)將一下比較關鍵的數據在控制臺;后來接觸了日志框架比較常用的就是Log4J了;
一般常用的框架有:
JUL,JCL,JBOSS-LOGING,longback,log4j,log4j2,slf4j等等

日志門面 (日志的抽象層)日志實現
JCL(Jakarta Commons Logging) SLF4j(Simple Logging Facade for Java) jboss-loggingLog4j JUL(java.util.logging) Log4j2 Logback

左邊選一個門面(抽象層)、右邊來選一個實現;

日志門面: SLF4J;

日志實現:Logback;
SpringBoot選用的是SLF4J和logback

2、SLF4j使用

1、系統中使用SLF4j

我們開發的時候一般都是調用日志抽象里面的方法,而不直接調用日志的實現類,這樣可擴展性更強

我們看看這張圖,我們知道了SLF4J是接口,他有很多實現類,這次我們的項目用的是logback,如果我們想換成log4j怎么呢?我們可以到通過一個中間的適配器來適配log4j

2、如何統一日志框架

我們知道每種框架都有自己的日志系統,如果一個系統里面包含了SLF4J+logback,Spring(commons-logging),Hibernate(jboss-logging),Mybatis·····等等。如何統一日志記錄,讓所有的日志都統一使用slf4j進行輸出?

我們來看看這張圖,一個應用面向了很多日志框架,如果我們直接去掉這些依賴包的話,系統肯定會報錯的,因為Spring本來底層會調用這些框架的API等。那怎么解決?從圖中可以看出采取了偷梁換柱的做法;用另一個jar包代替了本來的jar包。比如:logging;代替后和slf4j完美契合,就可以使用。
總結:
1.先將以前的剔除
2.用中間包替換原有的日志框架
3.導入slf4j其他的實現

3、SpringBoot日志

說了這么多,我們來看看SprinBoot的日志實現
導入場景

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId></dependency>

我們可以看看依賴關系圖

分析:1.我們可以看到SpringBoot底層使用slf4j+logback的方式進行日志記錄2.其他日志會轉換成slf4j3.可以從依賴中看到明顯的替換包

4.要引用其他框架的時候記得

<dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><exclusions><exclusion><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId></exclusion></exclusions></dependency>

SpringBoot能自動適配所有的日志,而且底層使用slf4j+logback的方式記錄日志,引入其他框架的時候,只需要把這個框架依賴的日志框架排除掉即可

4、日志使用;

1、默認配置

SpringBoot默認幫我們配置好了日志;

  • 測試
public class SpringBootLong4jApplicationTests {private Logger logger = LoggerFactory.getLogger(SpringBootLong4jApplicationTests.class);@Testpublic void contextLoads() {//日志的級別;//由低到高 trace<debug<info<warn<error//可以調整輸出的日志級別;日志就只會在這個級別以以后的高級別生效logger.trace("這是trace日志...");logger.debug("這是debug日志...");//SpringBoot默認給我們使用的是info級別的,沒有指定級別的就用SpringBoot默認規定的級別;root級別logger.info("這是info日志...");logger.warn("這是warn日志...");logger.error("這是error日志...");}}

日志輸出格式:%d表示日期時間,%thread表示線程名,%-5level:級別從左顯示5個字符寬度%logger{50} 表示logger名字最長50個字符,否則按照句點分割。 %msg:日志消息,%n是換行符-->%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n

SpringBoot修改日志的默認配置

logging.level.com.atguigu=trace#logging.path= # 不指定路徑在當前項目下生成springboot.log日志 # 可以指定完整的路徑; #logging.file=G:/springboot.log# 在當前磁盤的根路徑下創建spring文件夾和里面的log文件夾;使用 spring.log 作為默認文件 logging.path=/spring/log# 在控制臺輸出的日志的格式 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

logging.filelogging.pathExampleDescription
(none)(none)只在控制臺輸出
指定文件名(none)my.log輸出日志到my.log文件
(none)指定目錄/var/log輸出到指定目錄的 spring.log 文件中

2、指定配置

給類路徑下放上每個日志框架自己的配置文件即可;SpringBoot就不使用他默認配置的了

Logging SystemCustomization
Logbacklogback-spring.xml, logback-spring.groovy, logback.xml or logback.groovy
Log4j2log4j2-spring.xml or log4j2.xml
JDK (Java Util Logging)logging.properties

logback.xml:直接就被日志框架識別了;

logback-spring.xml:日志框架就不直接加載日志的配置項,由SpringBoot解析日志配置,可以使用SpringBoot的高級Profile功能
使用形式:

<springProfile name="staging"><!-- configuration to be enabled when the "staging" profile is active -->可以指定某段配置只在某個環境下生效 </springProfile>
  • 測試
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender"><!--日志輸出格式:%d表示日期時間,%thread表示線程名,%-5level:級別從左顯示5個字符寬度%logger{50} 表示logger名字最長50個字符,否則按照句點分割。 %msg:日志消息,%n是換行符--><layout class="ch.qos.logback.classic.PatternLayout"> <!--開發環境--><springProfile name="dev"><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} ----> [%thread] ---> %-5level %logger{50} - %msg%n</pattern></springProfile> <!--非開發環境--><springProfile name="!dev"><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} ==== [%thread] ==== %-5level %logger{50} - %msg%n</pattern></springProfile></layout></appender>

直接運行就是非開發環境

切換到開發環境

或者在配置那里填寫 --spring.profiles.active=dev

結果:

PS:

如果使用logback.xml作為日志配置文件,還要使用profile功能,會有以下錯誤

no applicable action for [springProfile]

總結

以上是生活随笔為你收集整理的SpringBoot与日志配置的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。