java - 如何在 log4j2 上编写日志滚动集成测试

标签 java integration 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>

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

关于java - 如何在 log4j2 上编写日志滚动集成测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37828947/

相关文章:

python - scipy.integrate.quad() 不使用 lambda

android - Facebook 登录与 Flutter 集成

python - C++ 和 Python 紧密集成

log4j2 isThreadContextMapInheritable 属性使用

java - 异步日志缓冲区的实现

java - 用替代品替换小程序

java - 从显示 OutOfMemoryError : Java heap space 的大型 Pyspark 数据帧创建字典

java - 如何从 Java 代理停止/暂停主程序/线程

java - 用log4j2将maven项目打包成jar

java - 电话响铃时弹出显示