4

我正在使用 aMemoryAppender来阅读单元测试中的日志消息。

我正在使用BasicConfigurator以下方式:

    class LogVerifier 
    { 
      private MemoryAppender m_appender; 
      public LogVerifier() 
      {
          m_appender = new MemoryAppender(); 
          BasicConfigurator.Configure(m_appender); 
      }

    //other stuff 

    }

因此,将为每个单元测试创​​建此类的对象。我试图找出这个静态类是否BasicConfigurator保留对 m_appender 的引用,因为如果它我想m_appender在每次使用后处理它。

任何人都知道如何实现这一目标?

谢谢,

4

1 回答 1

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();
}
于 2014-12-16T22:09:43.450 回答