我想要保存最多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的必要性,那就太棒了!