首页 > 解决方案 > 如何配置我的 logback 系统,以便它可以在基于时间的滚动周期完成后立即创建日志文件?

问题描述

我的应用程序基于 Jdk8,groovy 2.4 作为语言并在 Spring Framework 之上。作为记录器,我正在使用“logback”依赖项。(组:'ch.qos.logback',名称:'logback-classic',版本:'1.1.8')。基本上,RollingFileAppender 对我来说工作得很好,但目前,我还有一些额外的要求。

例如,假设在2018-05-16 11:08:50调用了特定的 logger 函数,error.log 中输入了一条记录,并且没有创建滚动文件。好吧,当下一次执行大约在2018-05-16 11:15:05 6 分钟后发生时,将创建一个新文件error.2018-05-16-11-08.logerror.log文件仅刷新新消息。此行为根据文档。但目前,我需要在滚动完成后立即创建日志文件。在这种情况下,实际上在2018-05-16 11:15:05创建的新文件error.2018-05-16-11-08.log,我需要在2018-05-16实际创建相同的文件11:09:00(意味着一旦基于分钟的滚动完成)。

<appender name="ERROR_LOG"
        class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>logs/error.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>logs/error_log/error.%d{yyyy-MM-dd-HH-mm}.log
            </fileNamePattern>
            <maxHistory>10</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS}\t%msg%n</pattern>
        </encoder>
    </appender>

我知道有一种方法,只需消除输入属性。如果我省略该属性,则问题部分会为我解决。但是,在这种情况下,将不会创建必须保留的 error.log。

请随时问我有关此问题的任何问题。

标签: springfilegroovyjava-8logback

解决方案


推荐阅读