获取Play框架日志中的FixedWindowRollingPolicy的当前时间

时间:2015-12-07 10:36:35

标签: playframework logback

我想要保存最多20个日志文件,当文件达到一定大小时我会回滚。 问题是 - 当我存档文件时,我希望将当前时间保存在其名称中。

目前我使用:

    <timestamp key="bySecond" datePattern="ddMMyyyy'-'HHmmss" timeReference="contextBirth"/>

    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${application.home}/logs/log.txt</file>
        <append>true</append>
        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
            <fileNamePattern>${application.home}/logs/${bySecond}.%i.log</fileNamePattern>
            <minIndex>1</minIndex>
            <maxIndex>30</maxIndex>
        </rollingPolicy>

        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <maxFileSize>2KB</maxFileSize>
        </triggeringPolicy>
        <encoder>
            <pattern>%date [%level] [%thread] from %logger  - %message%n%xException</pattern>
        </encoder>
    </appender>

但问题是bySecond时间戳只在服务启动时评估一次。

我想要的是每次翻转的当前时间。 我怎样才能做到这一点?

顺便说一句, 如果我可以摆脱在文件名中使用%i的必要性,那就太棒了!

0 个答案:

没有答案