log4j2 自動刪除日誌目錄及檔案

2022-09-24 00:21:12 字數 2778 閱讀 8418

原因:

通常的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...