【问题标题】:How to write integration test for log rollover on log4j2如何在 log4j2 上编写日志翻转集成测试
【发布时间】:2016-10-16 04:27:18
【问题描述】:

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

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

并且还可以在服务器关闭时轮换日志。

如何根据上述条件编写集成测试来验证日志轮换是否有效?

【问题讨论】:

标签: java integration log4j2


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2013-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-24
    相关资源
    最近更新 更多