在log4j2中,要自動刪除整個目錄,你可以使用log4j2的插件"Delete"。下面是一個示例配置文件,展示了如何使用"Delete"插件來自動刪除目錄。
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN" monitorInterval="30">
<Properties>
<Property name="logDir">logs</Property>
</Properties>
<Appenders>
<RollingFile name="RollingFile" fileName="${logDir}/app.log"
filePattern="${logDir}/app-%d{MM-dd-yy-HH-mm}.log.gz">
<PatternLayout>
<Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
</Policies>
<DefaultRolloverStrategy>
<Delete basePath="${logDir}">
<IfFileName glob="app-*.log.gz" />
<IfLastModified age="7d" />
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
</Appenders>
<Loggers>
<Root level="info">
<AppenderRef ref="RollingFile"/>
</Root>
</Loggers>
</Configuration>
在上述示例中,appender “RollingFile” 使用了時間觸發策略(TimeBasedTriggeringPolicy),每隔一分鐘滾動生成一個新的日志文件。同時,使用了默認的滾動策略(DefaultRolloverStrategy),其中包含了"Delete"插件。
在"Delete"插件中,配置了<IfFileName glob="app-*.log.gz" />
來匹配所有以"app-“開頭,以”.log.gz"結尾的文件。同時,配置了<IfLastModified age="7d" />
來定義文件最后修改時間,如果超過7天,就會被刪除。
請根據你的需求修改配置文件中的目錄路徑和其他參數。