使用Log4j2.xml删除旧日志不起作用

时间:2019-04-03 07:18:01

标签: java log4j2

使用log4j.xml删除7天的日志文件

我正在尝试使用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

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

您的文件名格式应为“ demo-err-*。log.gz”,而您未输入“ .gz”。