Log4j 2滚动文件的时间戳错误

时间:2019-06-24 11:34:40

标签: java log4j2

我有以下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

我在做什么错? (每隔一定的时间间隔(例如分钟)都会发生-邮票总是相距一个单位)

1 个答案:

答案 0 :(得分:0)

因此,最后我不得不向RollingFile元素添加fileName属性,并将策略更改为,它现在可以工作。 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>