时间戳错误的 Log4j 2 滚动文件
Log4j 2 rolling file with wrong timestamp
我有以下 Roling 文件:
<RollingFile name="mylog"
filePattern="${sys:server.output.dir}/logs/mylog_%d{yyyy-MM-dd}.%i.log"
ignoreExceptions="false">
<PatternLayout>
<Pattern>%d %-5p %c %m%n\n</Pattern>
</PatternLayout>
<Policies>
<OnStartupTriggeringPolicy minSize="100000000" />
<SizeBasedTriggeringPolicy size="100 MB" />
<TimeBasedTriggeringPolicy />
</Policies>
<DirectWriteRolloverStrategy />
</RollingFile>
但是我得到了错误的时间戳。
如果日志是在 6 月 24 日 创建的,它被称为 mylog_2019-06-23。1.log 并且它包含来自 24th.
的文件
最后生成的文件以更好地说明:
mylog_2019-06-20.1.log - generated on 21st at 23:50 - contains logs from 21st
mylog_2019-06-21.1.log - 22nd at 23:50 - contains logs from whole 22nd
mylog_2019-06-22.1.log - 23rd at 00:00 - contains logs from 23rd to 7 AM
mylog_2019-06-23.1.log - 23rd at 23:50 - contains logs from 23rd 7 AM to end of day
mylog_2019-06-23.2.log - 24th at 00:00 - contains logs from today (24th) until now
我做错了什么?
(任何间隔都会发生同样的情况,例如分钟 - 邮票总是关闭一个单位)
所以最后我不得不将 fileName 属性添加到 RollingFile 元素并将策略更改为,它现在可以工作了。 Nomax 只是不限制要保留的文件数量。
副作用是,现在日志首先登录到 mylog.log,当文件翻转时,它被重命名为 mylog_{stamp}.log。
<RollingFile name="myLog"
fileName="${sys:server.output.dir}/logs/mylog.log"
filePattern="${sys:server.output.dir}/logs/mylog_%d{yyyy-MM-dd}.%i.log"
ignoreExceptions="false">
<PatternLayout>
<Pattern>%d %-5p %c %m%n\n</Pattern>
</PatternLayout>
<Policies>
<OnStartupTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="100 MB" />
<TimeBasedTriggeringPolicy/>
</Policies>
<DefaultRolloverStrategy fileIndex="nomax"/>
</RollingFile>
我有以下 Roling 文件:
<RollingFile name="mylog"
filePattern="${sys:server.output.dir}/logs/mylog_%d{yyyy-MM-dd}.%i.log"
ignoreExceptions="false">
<PatternLayout>
<Pattern>%d %-5p %c %m%n\n</Pattern>
</PatternLayout>
<Policies>
<OnStartupTriggeringPolicy minSize="100000000" />
<SizeBasedTriggeringPolicy size="100 MB" />
<TimeBasedTriggeringPolicy />
</Policies>
<DirectWriteRolloverStrategy />
</RollingFile>
但是我得到了错误的时间戳。
如果日志是在 6 月 24 日 创建的,它被称为 mylog_2019-06-23。1.log 并且它包含来自 24th.
的文件最后生成的文件以更好地说明:
mylog_2019-06-20.1.log - generated on 21st at 23:50 - contains logs from 21st
mylog_2019-06-21.1.log - 22nd at 23:50 - contains logs from whole 22nd
mylog_2019-06-22.1.log - 23rd at 00:00 - contains logs from 23rd to 7 AM
mylog_2019-06-23.1.log - 23rd at 23:50 - contains logs from 23rd 7 AM to end of day
mylog_2019-06-23.2.log - 24th at 00:00 - contains logs from today (24th) until now
我做错了什么? (任何间隔都会发生同样的情况,例如分钟 - 邮票总是关闭一个单位)
所以最后我不得不将 fileName 属性添加到 RollingFile 元素并将策略更改为,它现在可以工作了。 Nomax 只是不限制要保留的文件数量。
副作用是,现在日志首先登录到 mylog.log,当文件翻转时,它被重命名为 mylog_{stamp}.log。
<RollingFile name="myLog"
fileName="${sys:server.output.dir}/logs/mylog.log"
filePattern="${sys:server.output.dir}/logs/mylog_%d{yyyy-MM-dd}.%i.log"
ignoreExceptions="false">
<PatternLayout>
<Pattern>%d %-5p %c %m%n\n</Pattern>
</PatternLayout>
<Policies>
<OnStartupTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="100 MB" />
<TimeBasedTriggeringPolicy/>
</Policies>
<DefaultRolloverStrategy fileIndex="nomax"/>
</RollingFile>