开发者

nHibernate disables my log4net logs

So, we had a little ETL app that had some issues with updates. Which were nicely solved in an afternoon sprint with nHibernate. But this app relied upon log4net to push logging output to a few different destinations based upon command line switches. Once we got nHibernate wrapped into the app, it ETL'd flawlessly. But the logging functions failed completely. From the debugger's point of view, any of our loggers have all log4net's levels disabled.

Here's the log4net config:

<log4net>
  <appender name="RollingFile" type="开发者_如何学Clog4net.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>

Not sure what other code would help, but I'm happy to post anything else from this app.


What version of NHibernate are you using? Builds older than 1.0-RC1 turned logging on internally. In 1.0-RC1 they changed this so you have to manually call log4net.XmlConfigurator.Configure(). This was done to give developers more control over logging.


You could try turning on the internal debugging in log4net: See this section in the following link:

"How do I enable log4net internal debugging?"

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

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜