log4j2配置檔案詳解

2021-08-07 02:38:53 字數 3108 閱讀 8913

log4j 2.x版本不再支援像1.x中的.properties字尾的檔案配置方式,2.x版本配置檔案字尾名只能為」.xml」,」.json」或者」.jsn」.

系統選擇配置檔案的優先順序(從先到後)如下:

(1).classpath下的名為log4j2-test.json 或者log4j2-test.jsn的檔案.

(2).classpath下的名為log4j2-test.xml的檔案.

(3).classpath下名為log4j2.json 或者log4j2.jsn的檔案.

(4).classpath下名為log4j2.xml的檔案.

我們一般預設使用log4j2.xml進行命名。如果本地要測試,可以把log4j2-test.xml放到classpath,而正式環境使用log4j2.xml,則在打包部署的時候不要打包log4j2-test.xml即可。

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

status="warn">

name="console"

target="system_out">

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

console>

level="error">

ref="console"/>

root>

loggers>

configuration>

patternlayout定義了輸出日誌時的格式:

其他常用的佔位符有:

target:system_out 或 system_err,一般只設定預設:system_out.

patternlayout:輸出格式,不設定預設為:%m%n.

filename:指定輸出日誌的目的檔案帶全路徑的檔名.

patternlayout:輸出格式,不設定預設為:%m%n.

filename:指定輸出日誌的目的檔案帶全路徑的檔名.

patternlayout:輸出格式,不設定預設為:%m%n.

filepattern:指定新建日誌檔案的名稱格式.

policies:指定滾動日誌的策略,就是什麼時候進行新建日誌檔案輸出日誌.

sizebasedtriggeringpolicy:policies子節點,基於指定檔案大小的滾動策略,size屬性用來定義每個日誌檔案的大小.

defaultrolloverstrategy:用來指定同乙個資料夾下最多有幾個日誌檔案時開始刪除最舊的,建立新的(通過max屬性)。

(3).loggers節點,常見的有兩種:root和logger.

root節點用來指定專案的根日誌,如果沒有單獨指定logger,那麼就會預設使用該root日誌輸出

logger節點用來單獨指定日誌的形式,比如要為指定包下的class指定不同的日誌級別等。

共有8個級別,按照從低到高為:all < trace < debug < info < warn < error < fatal < off.

程式會列印高於或等於所設定級別的日誌,設定的日誌等級越高,列印出來的日誌就越少。

4.比較完整的log4j2.xml配置模板

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

status="warn"

monitorinterval="30">

name="console"

target="system_out">

pattern="[%d] [%p] - %l - %m%n"/>

console>

name="log"

filename="log/test.log"

pattern="%d %-5level %class %l %m - %msg%xex%n"/>

file>

name="rollingfileinfo"

filename="$/logs/info.log"

filepattern="$/logs/$$/info-%d-%i.log">

level="info"

onmatch="accept"

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

pattern="[%d] [%p] - %l - %m%n"/>

size="100 mb"/>

policies>

rollingfile>

name="rollingfilewarn"

filename="$/logs/warn.log"

9filepattern="$/logs/$$/warn-%d-%i.log">

level="warn"

onmatch="accept"

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

pattern="[%d] [%p] - %l - %m%n"/>

size="100 mb"/>

policies>

max="20"/>

rollingfile>

name="rollingfileerror"

filename="$/logs/error.log"

filepattern="$/logs/$$/error-%d-%i.log">

level="error"

onmatch="accept"

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

pattern="[%d] [%p] - %l - %m%n"/>

size="100 mb"/>

policies>

rollingfile>

name="org.springframework"

level="info">

logger>

name="org.mybatis"

level="info">

logger>

level="all">

ref="console"/>

ref="rollingfileinfo"/>

ref="rollingfilewarn"/>

ref="rollingfileerror"/>

root>

loggers>

configuration>

log4j2 配置檔案解讀

日誌介面 slf4j slf4j是對所有日誌框架制定的一種規範 標準 介面,並不是乙個框架的具體的實現,因為介面並不能獨立使用,需要和具體的日誌框架實現配合使用,比如log4j logback等日誌框架。常用的日誌框架有log4j logback log4j2,log4j是apache實現的乙個開源...

log4j2配置檔案的故事

我們來詳細介紹一下 status 這是日誌自身的日誌。一般寫off,代表關閉不顯示。八個日誌級別以及優先順序排序 off 關閉 fatal 致命的 error warn info debug trace 堆疊 monitorinterval 重新整理此檔案的時間間隔,保證修改後的檔案及時生效。很顯然...

log4j2配置檔案的故事

我們來詳細介紹一下 status 這是日誌自身的日誌。一般寫off,代表關閉不顯示。八個日誌級別以及優先順序排序 off 關閉 fatal 致命的 error warn info debug trace 堆疊 monitorinterval 重新整理此檔案的時間間隔,保證修改後的檔案及時生效。很顯然...