原因:
通常的log4j2配置檔案如下,注意delete外掛程式這個element,一般只是展示乙個配置
現象:這樣的配置就會出現乙個問題,具體日誌檔案的上父目錄沒有被刪除
<?xml version="1.0" encoding="utf-8"
?>
<
configuration
status
="warn"
name
packages
="">
<
properties
>
<
property
name
="basedir"
>logs
property
>
properties
>
<
>
<
rollingfile
name
="rollingfile"
filename
filepattern
>
<
patternlayout
pattern
="%d %p %c [%t] %m%n"
/>
<
crontriggeringpolicy
schedule
="0 0 0 * * ?"
/>
<
defaultrolloverstrategy
>
<
delete
basepath
="$"
maxdepth
="2"
>
<
iffilename
glob
/>
<
iflastmodified
age="p60d"
/>
delete
>
defaultrolloverstrategy
>
rollingfile
>
>
<
loggers
>
<
root
level
="error"
>
<
ref="rollingfile"
/>
root
>
loggers
>
configuration
>
原因:由於配置檔案被解析後,通過該函式進行構建對應的strategy,入參函式action是乙個陣列,所以可以傳遞多個action行為。
解決辦法:
如果需要刪除basepath下的由log4j2按年月日自動生成的目錄,需要再指定乙個action,並且他的maxdepth為basepath到該目錄的層級數,以上面配置為例,則maxdepth為1
1<?
xml version="1.0" encoding="utf-8"
?>
2<
configuration
status
="warn"
name
packages
="">
3<
properties
>
4<
property
name
="basedir"
>logs
property
>
5properties
>
6<
>
7<
rollingfile
name
="rollingfile"
filename
8filepattern
>
9<
patternlayout
pattern
="%d %p %c [%t] %m%n"
/>
10<
crontriggeringpolicy
schedule
="0 0 0 * * ?"
/>
11<
defaultrolloverstrategy
>
12<
delete
basepath
="$"
maxdepth
="2"
>
13<
iffilename
glob
/>
14<
iflastmodified
age="p60d"
/>
15delete
>
1617 18
19defaultrolloverstrategy
>
20rollingfile
>
21>
22<
loggers
>
23<
root
level
="error"
>
24<
ref="rollingfile"
/>
25root
>
26loggers
>
27configuration
>
log4j2配置mybatis日誌
前天我上傳了我的mybatis系列課程 的第六講,主要內容是如何使用log4j2 具體版本為v2.0 rc1 為mybatis 3.2.7配置日誌。實際上目前最新的版本是剛剛發布的v2.0 rc2,我也嘗試過在mybatis 3.2.7中使用它,但卻報出以下錯誤 接著,在他的提示下,通過查閱myba...
springboot日誌體系 log4j2
最近除錯 和執行 的時候,一些日誌列印的亂七八槽,根據日誌很難快速定位到問題,感覺自己是為了列印日誌而列印日誌,花了點時間把日誌的相關整理了一下,意在讓日誌發揮最大的作用。本文解決以下問題 為何使用log4j2 springboot下log4j2日誌的使用 控制台日誌顯示的級別和檔案儲存的日誌不同 ...
Log4j2過濾日誌級別配置
filters filters決定日誌事件能否被輸出。過濾條件有三個值 accept 接受 deny 拒絕 neutral 中立 log4j2中的過濾器accept和deny之後,後續的過濾器就不會執行了,只有在neutral的時候才會執行後續的過濾器。常用的filter實現類有 threshold...