如何以编程方式获取发送到SL4J记录器的日志?

时间:2018-09-07 20:16:52

标签: java unit-testing slf4j

我正在使用SLF4J,并且我的班级有一个这样的记录器:

private static final Logger logger = LoggerFactory.getLogger(MyClass.class);

我正在编写单元测试。发生错误时,应以某种方式记录该错误。我想编写一个如下所示的测试:

@Test
public void loggedCorrectMessage() {
    //setup that would generate an exception

    MyClass myClass = new MyClass();
    myClass.myMethod();

    //somehow get the slf4j logger
    expect(slfLogger.getErrorMessages()).toContain("The error I was looking for.");
}

我不知道如何获得该SLF4J记录器,除非我将其从private公开并通过依赖注入对其进行模拟。当我这样做时,我的很多队友都不喜欢。有什么方法可以访问此记录器并检查在上面的单元测试中如何使用它?

也许值得一提的是我正在使用spring框架,但是我的记录器不是@Bean

0 个答案:

没有答案