开发者社区> 问答> 正文

使用OnStartupTriggeringPolicy和DirectWriteRolloverStr

我正在使用2.12.1的log4j-slf4j-impl版本。以及将通过命令行执行并在完成后终止的应用程序。

该应用程序在本地主机中不会一次执行,但是有可能我们在先前的应用程序运行时再次运行它。因此,我想按yyyyMMdd-HHmmss分隔日志文件,然后在应用程序启动时,如果文件修改时间超过指定的时间(此处设置为1分钟),则删除日志文件。

我的log4j2.xml内容:

<RollingFile name="default"
             filePattern="${output.folder}/my.%d{yyyyMMdd-HHmmss}.log">
    <PatternLayout pattern="${pattern}" />
    <Policies>
        <OnStartupTriggeringPolicy minSize="0" />
    </Policies>

    <DirectWriteRolloverStrategy>
        <Delete basePath="${output.folder}" maxDepth="1">
            <IfFileName glob="my*.log" />
            <IfLastModified age="1m" />
        </Delete>
    </DirectWriteRolloverStrategy>
</RollingFile>

日志文件如下所示:

my.20191127-091410.log my.20191127-091415.log my.20191127-091527.log my.20191127-091533.log 问题是以上log4j2设置不起作用。旧的日志记录文件不会被删除。我的log4j2设置有问题吗?

我非常感谢您的任何评论。

展开
收起
垚tutu 2019-11-29 23:05:17 1005 0
0 条回答
写回答
取消 提交回答
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载