Java 如何自动删除log4j2中较旧的日志文件
我正在使用log4j2在我的应用程序中进行日志记录,日志循环正在正常进行,但我希望旧的日志文件在满足条件(如15天或最多100个文件)后自动删除 我的log4j2.xml文件Java 如何自动删除log4j2中较旧的日志文件,java,spring,log4j2,lombok,Java,Spring,Log4j2,Lombok,我正在使用log4j2在我的应用程序中进行日志记录,日志循环正在正常进行,但我希望旧的日志文件在满足条件(如15天或最多100个文件)后自动删除 我的log4j2.xml文件 <Properties> <Property name="log-path">/var/log/my-application</Property> </Properties> <Appenders> <Console n
<Properties>
<Property name="log-path">/var/log/my-application</Property>
</Properties>
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout
pattern="%style{%d{ISO8601}}{black} %highlight{%-5level }[%style{%t}{bright,blue}] %style{%C{1.}}{bright,yellow}: %msg%n%throwable" />
</Console>
<RollingFile name="RollingFile"
fileName="${log-path}/xyz.log"
filePattern="${log-path}/xyz-%d{yyyy-MM-dd-hh}-%i.log">
<PatternLayout pattern="%date{yyyy-MM-dd HH:mm:ss} %level [%file:%line] %msg%n"/>
<Policies>
<SizeBasedTriggeringPolicy size="1 KB" />
<TimeBasedTriggeringPolicy interval="1" modulate="true" />
</Policies>
<DefaultRolloverStrategy max="40">
<Delete basePath="${log-path}" maxDepth="2">
<IfFileName glob="*/xyz-*.log">
<IfLastModified age="1d">
<IfAccumulatedFileCount exceeds="4"/>
</IfLastModified>
</IfFileName>
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
</Appenders>
<Loggers>
<!-- LOG everything at INFO level -->
<Root level="info">
<AppenderRef ref="Console" />
<AppenderRef ref="RollingFile" />
</Root>
</Loggers>
/var/log/my应用程序
但它并没有删除旧的日志文件,所以我使用了DefaultRolloverStrategy删除这些文件,但运气不好
如果您有任何关于如何删除这些旧日志的帮助,我们将不胜感激。您也有同样的问题。您是否同时找到了解决方案?我遇到的问题是.gz文件位于进一步嵌套的子文件夹中,但glob文件模式是错误的。我不得不写“*/***/app-*.log.gz”,而不是“*/app-.log.gz”