Java 如何自动删除log4j2中较旧的日志文件

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

我正在使用log4j2在我的应用程序中进行日志记录,日志循环正在正常进行,但我希望旧的日志文件在满足条件(如15天或最多100个文件)后自动删除

我的log4j2.xml文件

<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”