代码之家  ›  专栏  ›  技术社区  ›  Wyatt Barnett

nhibernate禁用我的log4net日志

  •  2
  • Wyatt Barnett  · 技术社区  · 16 年前

    所以,我们有一个小小的ETL应用程序在更新方面有一些问题。在下午用NHibernate很好地解决了这个问题。但是这个应用程序依靠log4net将日志输出推送到基于命令行开关的几个不同的目的地。一旦我们把NHibernate包在应用程序中,它就完美无缺了。但是日志功能完全失败了。从调试器的角度来看,我们的任何记录器都禁用了log4net的所有级别。

    以下是log4net配置:

    <log4net>
      <appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
        <file value="import-" />
        <staticLogFileName value="false" />
        <appendToFile value="false" />
        <rollingStyle value="Date" />
        <maxSizeRollBackups value="5" />
        <datePattern value="yyyyMMdd-HHmm&quot;.log&quot;" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%date %-5level - %message%newline" />
        </layout>
      </appender>
    
      <appender name="Console" type="log4net.Appender.ConsoleAppender">
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%-5level : %message%newline" />
        </layout>
      </appender>
    
      <appender name="Email" type="log4net.Appender.SmtpAppender">
        <to value="wwb@example.com" />
        <from value="PeepsImporter@example.com" />
        <subject value="Cte Importer Error" />
        <smtpHost value="smtp.example.com" />
        <bufferSize value="512" />
        <lossy value="false" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%newline%date %-5level : %message%newline%newline%newline" />
        </layout>
      </appender>
    
      <root>
        <level value="ALL" />
      </root>
    
      <logger name="Console">
        <level value="INFO" />
    
        <appender-ref ref="Console" />
      </logger>
      <logger name="File">
        <level value="INFO" />
        <appender-ref ref="RollingFile" />
      </logger>
      <logger name="DebugConsole">
        <level value="DEBUG" />
        <appender-ref ref="Console" />
      </logger>
      <logger name="DebugFile">
        <level value="DEBUG" />
        <appender-ref ref="RollingFile" />
      </logger>
      <logger name="EmailErrors">
        <level value="ERROR" />
        <appender-ref ref="Email" />
      </logger>
    </log4net>
    

    不知道其他代码有什么帮助,但我很乐意发布这个应用程序的其他任何内容。

    2 回复  |  直到 16 年前
        1
  •  2
  •   Kenneth Cochran    16 年前

    你用的是什么版本的NHibernate?早于1.0-rc1的生成在内部打开了登录。在1.0-rc1中,他们更改了这一点,因此您必须手动调用log4net.xmlconfigurator.configure()。这样做是为了让开发人员能够更好地控制日志记录。

        2
  •  0
  •   Andy White    16 年前

    您可以尝试在log4net中打开内部调试:请参阅以下链接中的本节:

    “如何启用log4net内部调试?”

    http://logging.apache.org/log4net/release/faq.html