您好,登錄后才能下訂單哦!
這篇文章主要講解了“springboot日志功能的詳細(xì)介紹”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“springboot日志功能的詳細(xì)介紹”吧!
市場(chǎng)上存在非常多的日志框架。JUL(java.util.logging),JCL(Apache Commons Logging),Log4j,Log4j2,Logback、 SLF4j、 jboss-logging等。Spring Boot在框架內(nèi)容部使用JCL,spring-boot-starter-logging采用了 slf4j+logback的形式,Spring Boot也能自動(dòng)適配(jul、 log4j2、 logback) 并 簡(jiǎn)化配置。
在寫(xiě)log4j的兩種配置方式(xml和propertiies)時(shí)我就在想“為什么使用log4j時(shí)需要導(dǎo)入self4j、log4j和整合jar包”?
經(jīng)過(guò)一番的周折之后,終于獲取到了答案,其實(shí)答案很簡(jiǎn)單,日志分為兩類:日志門(mén)面和日志實(shí)現(xiàn)兩種,這兩個(gè)之間的關(guān)系相當(dāng)于java中接口和實(shí)現(xiàn)類的關(guān)系,接下來(lái)對(duì)上面的日志框架做一下簡(jiǎn)單的分類:
日志門(mén)面 | 日志實(shí)現(xiàn) |
---|---|
JCL (Jakarta Common Logging) | Log4j |
SLF4J(Simple Logging for Java) | JUL(java.util .logging) |
jboss-logging | Log4j2 |
... | Logback ... |
他們之間不是一一對(duì)應(yīng)關(guān)系,只是這樣寫(xiě)看起來(lái)美觀點(diǎn)。
public class HelloWorld {
Logger logger = LoggerFactory.getLogger(HelloWorld.class);
}
從上面可知,導(dǎo)入日志需要在上面表中選擇一個(gè)日志門(mén)面和一個(gè)日志實(shí)現(xiàn)。下面以Slf4j為例展示其對(duì)應(yīng)關(guān)系如下:
這里又有一個(gè)問(wèn)題,springboot默認(rèn)使用SLF4j和logback,底層spring默認(rèn)使用JCL,然后如果導(dǎo)入了Hibernate(jboss-logging),如何使別的框架和我一起統(tǒng)一使用slf4j進(jìn)行輸出?
查看Slf4j的官方文檔時(shí),確實(shí)有解決方法,如下:
其解決思路如下:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring‐boot‐starter</artifactId>
</dependency>
總結(jié):
<!--移除JCL日志框架-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring‐core</artifactId>
<exclusions>
<exclusion>
<groupId>commons‐logging</groupId>
<artifactId>commons‐logging</artifactId>
</exclusion>
</exclusions>
</dependency>
springboot的處理方法和上面的圖解如出一轍,先把其它都轉(zhuǎn)換為Slf4j,支持多種日志實(shí)現(xiàn)。springboot2.1.6.RELEASE默認(rèn)導(dǎo)入了Slf4j、logback和log4j,因此你不需要導(dǎo)入日志的相關(guān)jar包就可以使用日志的功能!
#指定日志配置文件路徑
# logging.config=classpath:/logback-spring.xml
# 日志文件存放路徑
#logging.path=/spring/log
# 指定日志文件名
# logging.file=my.log
# 歷史日志文件的最大保存量
# logging.file.max-history=100000
# 指定日志打印級(jí)別,可以配置多個(gè)
#logging.level.com.hiberate.orcal_and_hiberate=debug
##
### 日志文件最大空間
##logging.file.max-size=10M
# 日志輸出格式:
# %d表示日期時(shí)間,
# %thread表示線程名,
# %‐5level:級(jí)別從左顯示5個(gè)字符寬度
# %logger{50}表示logger名字最長(zhǎng)50個(gè)字符,否則按照句點(diǎn)分割。
# %msg:日志消息,
# %n是換行符
# 日志控制臺(tái)打印格式
#logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level%logger{50}-%msg%n
#
## 日志輸出的時(shí)間格式
#logging.pattern.dateformat=%d{yyyy-MM-dd HH:mm:ss.SSS}
#
## 日志輸出到文件中的格式
#logging.pattern.file=%d{yyyy-MM-dd HH:mm:ss.SSS}[%thread]%-5level%logger{50}-%msg%n
#
## 在輸出日志中添加輸出級(jí)別
#logging.pattern.level=%5p
#
#logging.exception-conversion-word=%wEx
感謝各位的閱讀,以上就是“springboot日志功能的詳細(xì)介紹”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)springboot日志功能的詳細(xì)介紹這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。