无法在Fluent NHibernate中启用log4net

时间:2011-04-29 10:19:39

标签: nhibernate fluent-nhibernate log4net

我需要帮助配置log4net和Fluent NHibernate。似乎log4net正在启动,但我没有从NHibernate / Fluent NHibernate获取任何信息。我希望这些信息能够调试错误的映射。

App.config中的配置

                                                                           

<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" >
  <layout type="log4net.Layout.PatternLayout">
    <param name="Header" value="[Header]\r\n" />
    <param name="Footer" value="[Footer]\r\n" />
    <param name="ConversionPattern" value="%d [%t] %-5p %c %m%n" />
  </layout>
</appender>

<root>
  <level value="ALL" />
  <appender-ref ref="LogFileAppender" />
  <appender-ref ref="ConsoleAppender" />
</root>
<logger name="NHibernate"
    additivity="false">
  <level value="ALL"/>
  <appender-ref ref="ConsoleAppender"/>
</logger>

以下是我启动log4net和配置的方法。

        log4net.Config.XmlConfigurator.Configure();

        FluentConfiguration cfg = Fluently.Configure()
            .Database(SQLiteConfiguration.Standard.ShowSql().InMemory())
            .Diagnostics(x => x.Enable());
        DbCtx.Source = new SessionSource(cfg.BuildConfiguration()
                                                .Properties, new PSModel());

我得到的异常是在cfg.BuildConfiguration()的最后一行。但是,我没有在日志中记录映射的方式。

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

如果您想在visual studio的输出窗口中查看消息,请改为使用以下内容:

<appender name="ConsoleAppender" type="log4net.Appender.TraceAppender" >

同样要查看日志消息,您可能希望将NHibernate吐出的所有内容都抛出到您的LogFileAppender中:

<logger name="NHibernate"
    additivity="false">
  <level value="ALL"/>
  <appender-ref ref="ConsoleAppender"/>
  <appender-ref ref="LogFileAppender"/>
</logger>

答案 1 :(得分:0)

问题在Fluent NHibernate中发生异常,因此无法启动NHibernate。