当前位置: 首页 > 知识库问答 >
问题:

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

仉联
2023-03-14

删除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

有人能帮忙吗。

共有1个答案

越勇
2023-03-14

您的文件名模式应该是"demo-err-*.log.gz",您错过了". gz"。

 类似资料:
  • 我正在尝试以编程方式配置log4j2v2。11.1作为DefaultRolloverStrategy的一部分,使用新的删除操作删除旧文件。 正如您可以从下面的代码中看到的,我已将系统设置为每天创建日志文件,并在文件大小达到1MB时滚动该文件。 我尝试使用两个条件将删除操作添加到DefaultRolloverStrategy中—IfFileName和IfLastModified。IfFileName

  • 这是我的log4j2.yaml。现在,这个记录器在一天内创建一个文件,当这一天结束时,记录器将创建一个文件夹“归档”,并将旧的日志文件放在这个文件夹中。我需要删除7天前创建的所有旧日志。我做错了什么?请帮帮我

  • (F.Y.I.我已经在互联网上搜索了很多文档。我正在使用storm-0.10.0-beta1。storm中log4j2的配置文件是worker.xml) 现在,我尝试使用log4j2。 我正在寻找删除旧日志的方法,但我找不到。部分配置如下。 起初,我期望删除超过3天的日志文件。 但事实上,事实并非如此。 所以,我想知道是否有办法删除旧日志。 如果有一条路我还没有找到,请通知我。

  • 我使用下面的log4j2。xml 我想要的是旧的日志文件被删除,如果累积的大小超过。但是log4j2首先删除最近修改的文件。https://logging.apache.org/log4j/2.x/manual/appenders.html说有一个路径排序参数可以做到这一点。有人能告诉我如何指定相反的将逻辑排序为默认值?

  • 问题内容: 我正在尝试将 log4j 配置为仅保留指定数量的备份文件或保留不超过一定年龄的文件。最终,我希望有 时间(每天)基于触发策略, 并保留30个备份文件或删除早于30天的文件。 经过一些研究后,我了解到在使用 时间策略 时无法指定备份文件的最大数量,但是遇到了这个问题https://issues.apache.org/jira/browse/LOG4J2-435和此文档片段http: //

  • 我在SpringBoot中使用logback,但无法删除旧的日志文件。 我在logback-spring.xml文件中定义了以下appender: 即使我设置了“MaxHistory”和“CleanHistoryonStart”,超过10天的日志文件也不会被删除。既不是翻转也不是启动。