使用从log4j到log4j2的小时翻转策略的顶部将RollingFileAppender移动的确切配置?

时间:2015-06-14 16:26:59

标签: java logging log4j log4j2

所以我在DailyRollingFileAppender中有一个log4j。我们正在从log4j转移到log4j2。以下是描述DailyRollingFileAppender设置的log4j XML:

<appender name="appender_1" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="file" value="/mnt/analytics/logs/others/analytics_.log"/>
        <!--  Rollover at the top of every hour. -->
        <param name="DatePattern" value="'.'yyyy-MM-dd-HH"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mmz}|%m%n"/>
        </layout>
    </appender>

如您所见,目前我们的日志在每小时的顶部翻转。在log4j2中,相同格式的确切配置是什么,即每小时顶部的翻转日志?

我知道log4j2中的对应类是RollingFile,但是指定上述翻转策略的配置是什么?

1 个答案:

答案 0 :(得分:1)

<RollingFile name="appender_1" fileName="/mnt/analytics/logs/others/analytics_.log"
  filePattern="/mnt/analytics/logs/others/analytics_.log.%d{yyyy-MM-dd-HH}">
  <PatternLayout pattern="%d{yyyy-MM-dd HH:mmz}|%m%n"/>
  <Policies>        
    <TimeBasedTriggeringPolicy interval="1"/>
  </Policies>
  <DefaultRolloverStrategy max="24"/>    
</RollingFile>

间隔单位由文件模式日期中提供的最小单位确定。在我们的例子中,最小的单位是小时。如果间隔指定为2,则它将每两个小时翻转一次。请注意,日期查找可以是文件模式中的任何位置,但必须存在以执行基于时间的翻转。