Удалить старые журналы с Log4j2.xml не работает - PullRequest
0 голосов
/ 03 апреля 2019

Удаление 7-дневных файлов журнала с помощью log4j.xml

Я пытаюсь удалить старые файлы журнала с помощью DefaultRolloverStrategy, но это не работает.

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
    <Properties>
        <Property name="log-path">Logs</Property>
        <Property name="LOG_PATTERN">
            [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
        </Property>
    </Properties>
    <Appenders>
        <Console name="ConsoleAppender" target="SYSTEM_OUT">
            <PatternLayout pattern="${LOG_PATTERN}" />
        </Console>
        <RollingFile name="InfoFileAppender" fileName="${log-path}/demo-app.log"
            filePattern="${log-path}/demo-app-%d{yyyy-MM-dd}.log">
            <PatternLayout>
                <pattern>
                    [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
                </pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1"
                    modulate="true" />
                <!--<SizeBasedTriggeringPolicy size="10 MB" /> -->
            </Policies>
            <DefaultRolloverStrategy>
                <Delete basePath="${log-path}/" maxDepth="1">
                    <IfFileName glob="demo-app-*.log" />
                    <IfLastModified age="7d" />
                </Delete>
            </DefaultRolloverStrategy>
        </RollingFile>
        <RollingFile name="ErrorFileAppender" fileName="${log-path}/demo-err.log"
            filePattern="${log-path}/demo-err-%d{yyyy-MM-dd}.log">
            <PatternLayout>
                <pattern>
                    [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
                </pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1"
                    modulate="true" />
                <!-- <SizeBasedTriggeringPolicy size="5 MB"/> -->
            </Policies>
            <DefaultRolloverStrategy>
                <Delete basePath="${log-path}/" maxDepth="1">
                    <IfFileName glob="demo-err-*.log" />
                    <IfLastModified age="7d" />
                </Delete>
            </DefaultRolloverStrategy>
        </RollingFile>
    </Appenders>
    <Loggers>
        <Root level="debug">
            <AppenderRef ref="InfoFileAppender" level="info" />
            <AppenderRef ref="ConsoleAppender" level="info" />
            <AppenderRef ref="ErrorFileAppender" level="error" />
        </Root>
    </Loggers>
</Configuration>

Но он работает на моем компьютере, но не работает на сервере Linux.Путь хранения лог-файлов на сервере Linux: /opt/Logs.

. Может кто-нибудь помочь, пожалуйста.

...