NUnit中的log4net错误:“尝试附加到名为[]的已关闭的appender。”

时间:2010-11-05 16:51:07

标签: nunit log4net

当我通过NUnit运行一些集成测试时,一切正常,包括日志记录。当我第二次运行任何测试 时,不会抛出异常,但是日志记录停止工作。相反,log4net将其写入控制台:

log4net:ERROR [TextWriterAppender] Attempted to append to closed appender named [].

这是log4net配置:

  <log4net debug="true" >
    <appender name="console"
          type="log4net.Appender.ConsoleAppender, log4net">
      <layout type="log4net.Layout.PatternLayout,log4net">
        <param name="ConversionPattern"
             value="%d{ABSOLUTE} %-5p %c{1}:%L - %m%n" />
      </layout>
    </appender>

    <root>
      <priority value="DEBUG" />
      <appender-ref ref="console" />
    </root>

    <logger name="NHibernate">
      <level value="WARN" />
    </logger>

    <logger name="NHibernate.SQL" >
      <level value="DEBUG" />
    </logger>
  </log4net>

设置代码位于SUT中的静态构造函数中:

log4net.Config.XmlConfigurator.Configure();

我设法通过各种其他appender设置获得相同的错误。是什么导致这个错误?我想知道原因是什么,所以我知道如何解决它,以及如何在生产场景中重现这一点(如果可能的话),这样我就可以防止它发生在生产代码中。

我正在使用NHibernate 2.0.1.GA及其随附的log4net版本(1.2.10.0)。

1 个答案:

答案 0 :(得分:2)

好吧,如果你看一下它所说的错误[TextWriterAppender],这意味着log4net试图将日志消息附加到TextWriter,而你提供的配置没有。

要么有另一个配置了log4net标签的配置文件,要么在代码中,你可以在任何地方调用LogManager.Shutdown()