Java 如何在log4j2上编写日志滚动的集成测试

Java 如何在log4j2上编写日志滚动的集成测试,java,integration,log4j2,Java,Integration,Log4j2,我正在使用log4j2登录我的应用程序。我在log4.xml中使用以下策略 <Policies> <SizeBasedTriggeringPolicy size="2000 MB" /> <TimeBasedTriggeringPolicy /> </Policies> 并在服务器关闭时旋转日志 如何编写集成测试来验证基于上述条件的日志旋转工作?您的测试应该打印大量消息以导致日志滚动。 为了帮助实现(滚动),使用专用的log4j2配置进行测试

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

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

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


如何编写集成测试来验证基于上述条件的日志旋转工作?

您的测试应该打印大量消息以导致日志滚动。 为了帮助实现(滚动),使用专用的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>

我有一个关于这方面的工作示例。查找测试类LogApplicationTest。
如果您需要更多提示或有其他问题,请参阅my。

您的测试应打印大量消息以导致日志滚动。 为了帮助实现(滚动),使用专用的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>

我有一个关于这方面的工作示例。查找测试类LogApplicationTest。
如果您需要更多提示或有其他问题,请参阅我的。

不要测试框架。如果你真的想测试你的配置,看看框架源代码是如何完成的。一个糟糕的mans解决方案是记录2GB的数据并检查是否创建了新文件。为什么要测试已经测试过的功能?不要测试框架。如果你真的想测试你的配置,看看框架源代码是如何完成的。一个糟糕的mans解决方案是记录2GB的数据并检查是否创建了新文件。为什么要测试已经测试过的功能?