我在filePattern中使用了date,但是log4j创建的date不正确。今天是2015-11-23,但是log4j创建了一个名为2015-12的文件目录。我的log4j2版本是2.4.1。here is a snapshot
下面是我的log4j2配置。
<RollingFile name="RollingFile" fileName="logs/executor.log" append="true"
filePattern="logs/$${date:yyyy-MM}/executor-%d{yyyy--MM--dd}-%i.log.gz">
<PatternLayout>
<Pattern>%t %d{yyyy-MM-dd HH:mm:ss} %c %p -%m%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="24" modulate="true"/>
<SizeBasedTriggeringPolicy size="1MB"/>
</Policies>
</RollingFile>发布于 2015-12-15 05:36:01
此问题是由于您的时间间隔造成的。它有效地将初始滚动文件设置为下一次滚动结束的时间。TimeBasedTriggeringPolicy的RollingFileAppender文档说:“根据日期模式中最具体的时间单位,滚动应该发生的频率。”由于您最具体的时间单位是dd,即每月的某一天,因此它将其设置为从2015-11-23开始的24天,或12个月的某个时间,当它将滚动时。
你可能想要的是间隔为1。这应该滚动到每个文件日,然后一旦每个月溢出,它就会进入下一个子文件夹,因为触发了1天。
我已经用你的模式测试过了,但是在最后使用MM和interval=“24”。调制,它滚动到12/2016,但没有调制,它滚动说11/2017!我不能说为什么,根据我上面的评论,这个功能报告了一些问题。
发布于 2015-12-01 14:51:57
也有同样的问题。
<RollingFile name="DailyFileAppender" fileName="logs/server.log"
filePattern="logs/server - %d{yyyy-MM-dd} - %i.log">
<PatternLayout>
<pattern>%d{yyyy-MM-dd HH:mm:ss,SSS}- %c{1}: %m%n</pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="5"/>
<SizeBasedTriggeringPolicy size="10 KB"/>
</Policies>
<DefaultRolloverStrategy max="4"/>
</RollingFile>输出文件的数据错误。例如,日期为"2015-12-01“输出日期为"2015-12-05”
https://stackoverflow.com/questions/33863275
复制相似问题