Log4j:即使没有触发日志,如何使用DailyRollingFileappender每天生成带有标题的日志文件

时间:2018-11-01 12:31:54

标签: java log4j

即使没有从应用程序触发的日志,如何使用DailyRollingFileappender每天使用标题生成日志文件。

因此,文件滚动后,前几天的文件应仅包含标题

1 个答案:

答案 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>