使用Logger的单元测试类获得文件的过早结束

时间:2016-09-14 20:10:43

标签: java unit-testing logging

如何对包含final static logger的类的方法进行单元测试?我不需要或者根本不想让它记录任何东西,但当我运行单元测试时应该通过我

[Fatal Error] log4j2.xml:1:151: Premature end of file.
ERROR StatusLogger Error parsing C:\...\MyProject\target\classes\log4j2.xml

我应该嘲笑它,以某种方式忽略它,或者什么?我不希望它记录测试,但我显然需要它来记录应用程序本身的执行时间。

1 个答案:

答案 0 :(得分:0)

因此,尝试模拟,或以某种方式绕过日志记录,而不是使问题复杂化,我选择让日志记录发生。我只是不允许它写入我的日志目录,也不打印到控制台。我只是简单地制作了一个src/test/resources文件夹,创建了一个log4j2.xml并将其折腾在那里解决了我的问题:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="DEBUG" shutdownHook="disable">
    <Properties>
        <Property name="log-path">./logs</Property>
    </Properties>
    <Loggers>
        <Logger name="root" level="info" additivity="false">
            <appender-ref ref="RollingFile" level="info"/>
        </Logger>
        <Root level="info" additivity="false">
            <AppenderRef ref="RollingFile"/>
        </Root>
    </Loggers>
</Configuration>