即使没有从应用程序触发的日志,如何使用DailyRollingFileappender每天使用标题生成日志文件。
因此,文件滚动后,前几天的文件应仅包含标题
答案 0 :(得分:0)
Log4j DailyRollingFileAppender
将在没有日志记录的情况下不输出空文件。来自实施:
/**
* This method differentiates DailyRollingFileAppender from its
* super class.
*
* <p>Before actually logging, this method will check whether it is
* time to do a rollover. If it is, it will schedule the next
* rollover time and then rollover.
* */
protected void subAppend(LoggingEvent event) {
如果您可以升级到log4j2,则可以使用TimeBased Triggering Policy
TimeBasedTriggeringPolicy导致日期/时间一旦发生翻转 模式不再适用于活动文件。此政策接受 间隔属性,指示应多久进行一次过渡 会根据时间模式和布尔布尔属性发生。
您的配置应该是这样的-您可以在here中阅读进一步的说明:
<RollingFile name="RollingFile">
<FileName>C:/log/mylog.log</FileName>
<FilePattern>C:/log/time-based-logs/%d{yyyy-MM-dd-hh-mm}.log.zip</FilePattern>
<PatternLayout>
<Pattern>%d{yyyy-MM-dd}.log.zip [%t] %-5level %logger{36} - %msg%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true" />
</Policies>
<DefaultRolloverStrategy max="5" />
</RollingFile>