是否有log4j的附加程序,该附加程序仅存储日志记录事件的列表(用于单元测试,以验证未写入任何错误日志)?
最佳答案
有一个MemoryAppender,但它不是标准log4j库的一部分。
您可以轻松编写自己的代码,但是如果仅将它们用于单元测试,则可能会模拟Logger并断言不会对其进行任何调用。覆盖目标类中的getLogger()方法,或直接在类型上设置模拟Logger。
使用Jmock(例如来自内存的示例,对不起任何错误):
public void testDoFoo() {
Mockery mockery = new Mockery();
Logger mockLogger = mockery.mock(Logger.class);
Foo foo = new Foo();
foo.setLogger(mockLogger);
mockery.checking(new Expectations() {
{
never(mockLogger).debug(with(any(String.class));
}
};
...
//do the actual test.
//assert the mock type has never been called.
mockery.assertIsSatisfied();
}
关于java - 在内存中log4j的 'list appender',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1149657/