代码之家  ›  专栏  ›  技术社区  ›  jyoungdev Thilo

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

  •  2
  • jyoungdev Thilo  · 技术社区  · 14 年前

    第二次 ,没有抛出异常,但日志停止工作。相反,log4net将其写入控制台:

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

      <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设置中得到相同的错误。是什么导致了这个错误?我想知道原因是什么,这样我就知道如何修复它,以及如何在生产场景中重现它(如果可能的话),这样我就可以避免它发生在生产代码上。

    我使用的是nhibernate2.0.1.GA和它附带的log4net版本(1.2.10.0)。

    1 回复  |  直到 14 年前
        1
  •  2
  •   Basit Anwer    13 年前

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