springboot日誌體系 log4j2

2021-08-03 07:22:10 字數 2696 閱讀 6814

最近除錯**和執行**的時候,一些日誌列印的亂七八槽,根據日誌很難快速定位到問題,感覺自己是為了列印日誌而列印日誌,花了點時間把日誌的相關整理了一下,意在讓日誌發揮最大的作用。

本文解決以下問題:

- 為何使用log4j2

- springboot下log4j2日誌的使用

- 控制台日誌顯示的級別和檔案儲存的日誌不同

- idea控制台顏色日誌的輸出

目前有關日誌的開源**很多,如log4j、sl4j和log4j2,為什麼我選擇使用log4j2呢,看完下面兩篇效能的對比,相信你也會選擇log4j2

需要將springboot內建的日誌剃掉,然後引入log4j2,pom如下

org.springframework.bootgroupid>

spring-boot-starter-webartifactid>

org.springframework.bootgroupid>

spring-boot-starter-tomcatartifactid>

exclusion>

org.springframework.bootgroupid>

spring-boot-starter-loggingartifactid>

exclusion>

exclusions>

dependency>

org.springframework.bootgroupid>

spring-boot-starter-log4j2artifactid>

dependency>

控制台列印結果

當然了,使用配置檔案,配置可以多樣化,下面是預設的log4j2配置,log4j2支援xml、json、yml格式的配置

<?xml version="1.0" encoding="utf-8"?>

status="off">

name="console"

target="system_out">

pattern="%d [%t] %-5level %logger - %msg%n"/>

console>

level="error">

ref="console"/>

root>

loggers>

configuration>

詳細參見官網:

我的服務一般放在linux伺服器上跑,可能要實時檢視日誌,現有這個需求「我要列印到控制台的日誌級別為error,日誌檔案裡儲存的是info級別的日誌」這樣在產生錯誤的時候,就不會被大量無用的**干擾。

要使用thresholdfilter,配置如下

<?xml version="1.0" encoding="utf-8"?>

status="off">

name="console"

target="system_out">

level="error"

onmatch="accept"

o****match="deny"/>

pattern="%d %-5level %class %m() @%l - %msg%n"/>

console>

name="error"

filename="logs/error.log"

level="error"

onmatch="accept"

o****match="deny"/>

pattern="%d %-5level %class %m() @%l - %msg%n"/>

file>

name="rollingfile"

pattern="%d %-5level %class %m() @%l - %msg%n"/>

size="5mb"/>

rollingfile>

level="info">

ref="error" />

ref="rollingfile"/>

ref="console"/>

root>

loggers>

configuration>

執行**,檢視各檔案和控制台

完美~

...

name="console"

target="system_out">

level="info"

onmatch="accept"

o****match="deny"/>

pattern="%highlight %-5level %class %m() @%l - %msg%n}"/>

console>

...

結果

相當完美~

相信有了明確的日誌輸出,能提高我們排錯的效率,當別人看日誌累的揉眼睛的時候,我們早已喝著茶水,唱著歌~

**在這裡

歡迎瀏覽我的部落格:

springboot 設定日誌

logging.level root info logging.level org springframework web debug 設定包的日誌級別 logging.level org hibernate error或者可以在命令列引數後加 logging.level org springfra...

springboot 日誌管理

springboot 在引入spring boot starter web時,預設的引入logback日誌包,在專案中就不需要額外引入.debug info warn error fatal。在resource目錄下新增logback spring.xml 內容 xml version 1.0 en...

springboot新增日誌

pom.xml新增依賴如下 org.springframework.boot spring boot starter web org.springframework.boot spring boot starter logging org.springframework.boot spring bo...