我在单元测试中使用MemoryAppender
来读取日志消息。
我正在以下列方式使用BasicConfigurator
:
class LogVerifier
{
private MemoryAppender m_appender;
public LogVerifier()
{
m_appender = new MemoryAppender();
BasicConfigurator.Configure(m_appender);
}
//other stuff
}
因此,将为每个单元测试创建此类的对象。
我试图找出这个静态类BasicConfigurator
是否保留对m_appender的引用,因为如果这样我想在每次使用后处理m_appender
。
任何人都有任何关于如何实现这一目标的线索?
谢谢,
丹
答案 0 :(得分:2)
我有一些nUnit测试根据写入log4net(或不是)的事件进行断言。我使用这个拆卸代码,它运作良好。
[TestFixtureTearDown]
protected void TeardownLogging()
{
if (m_appender != null)
{
m_appender.Clear();
m_appender.Close();
}
m_appender = null;
var appenders = ((log4net.Repository.Hierarchy.Hierarchy) LogManager.GetRepository()).Root as log4net.Core.IAppenderAttachable;
appenders.RemoveAllAppenders();
}