如何在log4j2上编写日志翻转的集成测试

时间:2016-06-15 07:35:33

标签: java integration log4j2

我正在使用log4j2登录我的应用程序。我在log4.xml中使用以下策略

<Policies>
<SizeBasedTriggeringPolicy size="2000 MB" />
<TimeBasedTriggeringPolicy />
</Policies>

并在服务器关闭时旋转日志。

如何根据上述条件编写集成测试以验证日志轮换?

1 个答案:

答案 0 :(得分:0)

您的测试应打印大量邮件以导致日志滚动。 为了帮助它(滚动),使用专用的log4j2配置进行测试。为策略定义不同的值:将大小策略缩小到相当小的大小(远小于2000 MB)并以某种方式更改时间模式和时间策略间隔,从而允许为同一日期创建多个文件。 下面的配置示例定义了最多21个日常文件的创建,具有最低索引的文件是最新的。文件滚动在达到1k的大小时完成:

<RollingFile name="AppLog" fileName="${logDir}/${logFile}.log"
        filePattern="${logDir}/${logFile}-%d{dd-MM-yyyy}-%i.log">
                <Policies>
            <TimeBasedTriggeringPolicy/>
            <SizeBasedTriggeringPolicy size="1 KB"/>
        </Policies>
        <DefaultRolloverStrategy fileIndex="min" max="21"/>
</RollingFile>

我在git here上有一个有效的例子。查找测试类LogApplicationTest。 如果您需要更多提示或遇到其他问题,请参阅我的blog