Logback日誌配置

2021-09-27 12:34:35 字數 3858 閱讀 1798

logback越來越流行,不過使用過程中覺得還不錯,配置簡單明瞭。不過有幾點需要注意的是:

spring-boot中使用logback不需要再引入logback的三個jar包,因為在spring-boot-starter-logging已經整合了它。

幾種日誌過濾器,需要了解明白,不然不能配置到自己想要的效果的日誌。

本人配置如下:

debug

="true"

scan

="true"

scanperiod

="1 seconds"

>

>

logbackcontextname

>

name

= value

=/>

name

="log.path"

value

="/logs"

/>

name

="stdout"

class

=>

class

="ch.qos.logback.classic.filter.thresholdfilter"

>

>

infolevel

>

filter

>

>

>

%d [%thread] %highlight(%-5level) %logger [%file : %line] - %msg%npattern

>

encoder

>

>

name

="info_file"

class

=>

>

>

class

="ch.qos.logback.classic.filter.levelfilter"

>

>

infolevel

>

>

acceptonmatch

>

>

neutralo****match

>

filter

>

class

="ch.qos.logback.core.rolling.sizeandtimebasedrollingpolicy"

>

>

>

>

10mbmaxfilesize

>

>

60maxhistory

>

>

20gbtotalsizecap

>

rollingpolicy

>

>

>

%d [%thread] %highlight(%-5level) %logger [%file : %line] - %msg%npattern

>

encoder

>

>

name

="error_file"

class

=>

>

>

class

="ch.qos.logback.classic.filter.thresholdfilter"

>

>

warnlevel

>

filter

>

class

="ch.qos.logback.core.rolling.sizeandtimebasedrollingpolicy"

>

>

>

>

10mbmaxfilesize

>

>

60maxhistory

>

>

20gbtotalsizecap

>

rollingpolicy

>

>

>

%d [%thread] %-5level %logger [%file : %line] - %msg%npattern

>

encoder

>

>

level

="debug"

>

ref=

"stdout"

/>

ref=

"info_file"

/>

ref=

"error_file"

/>

root

>

configuration

>

級別過濾器levelfilter

級別過濾器是根據日誌級別進行過濾的,過濾器會根據onmatcho****match接收或拒絕

用法如下:

class

="ch.qos.logback.classic.filter.levelfilter"

>

>

infolevel

>

>

acceptonmatch

>

>

denyo****match

>

filter

>

match值有三個,分別是:denyneutralaccept

deny:日誌立即被拋棄不再經過其他過濾器;

accept:日誌被立即處理,不再經過剩餘過濾器。

*所以如果只顯示warninfo級別的日誌怎麼配置過濾器?*如下:

class

="ch.qos.logback.classic.filter.levelfilter"

>

>

infolevel

>

>

acceptonmatch

>

>

neutralo****match

>

filter

>

class

="ch.qos.logback.classic.filter.levelfilter"

>

>

warnlevel

>

>

acceptonmatch

>

>

denyo****match

>

filter

>

臨界值過濾器thresholdfilter

臨界值過濾器,過濾掉低於配置的臨界值的日誌。當日誌級別等於或高於臨界值時,過濾器返回neutral;當日誌級別低於臨界值時,日誌會被拒絕。

用法如下:

class

="ch.qos.logback.classic.filter.thresholdfilter"

>

>

infolevel

>

filter

>

求值過濾器evaluatorfilter

求值過濾器,評估、鑑別日誌是否符合指定條件。需要額外的兩個jar包,commons-compiler.jar和janino.jar有以下子節點。

參考:logback logback.xml常用配置詳解

配置logback日誌

引入依賴 spring boot starter 中引入了 spring boot starter logging 日誌啟動器 org.springframework.boot spring boot starter logging 2.2.5.release compile spring boot...

logback 非同步日誌配置

目前所有的日誌記錄方式採用的都是同步的方式,即直接將日誌寫入檔案。在多應用的時候,這種效果會導致一定的執行緒執行延遲,所以可以採用非同步的方式處理。0.11及以上版本存在 非同步日誌記錄是在原來logback上的擴充套件,並不是替代方式,所以只需要在原來的配置檔案上新增一下配置 這樣你的工程就會使用...

logback配置日誌檔案位置

logback輸出的日誌檔案,缺省會放到 啟動程序 的目錄下面 比如說程式直接在eclipse裡跑,就會輸出到eclipse.exe所在的目錄下,如果是在tomcat中跑,就會輸出到 tomcat home bin目錄下 30 4relative d thread 5level class msg ...