Fluent NHibernate和log4net

Fluent NHibernate和log4net,nhibernate,fluent-nhibernate,log4net,Nhibernate,Fluent Nhibernate,Log4net,虽然在这个话题上有很多问题和答案,但我无法找到我问题的答案。我已经为NHibernate配置了log4net,如下所述: 唯一的区别是我将log4net配置为与跟踪追加器一起使用: <appender name="trace" type="log4net.Appender.TraceAppender, log4net"> <layout type="log4net.Layout.PatternLayout,log4net"> <param n

虽然在这个话题上有很多问题和答案,但我无法找到我问题的答案。我已经为NHibernate配置了log4net,如下所述:

唯一的区别是我将log4net配置为与跟踪追加器一起使用:

<appender name="trace" type="log4net.Appender.TraceAppender, log4net">
    <layout type="log4net.Layout.PatternLayout,log4net">
        <param name="ConversionPattern" value="%d %p %m%n" />
    </layout>
</appender>
....
    <logger name="NHibernate" additivity="false">
        <level value="ALL"/>
        <appender-ref ref="trace"/>
    </logger>
    <logger name="NHibernate.SQL" additivity="false">
        <level value="ALL"/>
        <appender-ref ref="trace"/>
    </logger>

....
普雷斯托,我得到了我的NHibernate日志。但是,我没有看到任何生成的SQL查询,这正是我希望看到的。我确实得到了关于打开和关闭会话、提交事务等的日志记录,但没有记录发送到数据库的查询。有人知道我忽略了什么吗


我使用的是Fluent NHibernate 1.2,它使用的是NHibernate 3.1。我已在配置中启用了
ShowSql()

请尝试在fluent NH配置中将ADONbatchSize设置为零:

Fluently
  .Configure()
  .Database(...) 
  .AdoNetBatchSize(0) 

尝试从两个附加器中删除
additivity=“false”
。或者为
NHibernate.SQL
使用不同的appender。在这个例子中,将它们设置为false并不真正有意义

如果您想将sql查询与常规的nhibernate日志记录分开,那么如果您使用的是不同的appender,那么这是有意义的


尝试从Fluent NHibernate配置中删除
ShowSql()
调用。@Pieter-启用ShowSql()时,至少在VS输出窗口中可以看到它吗?这对我来说适用于FNH1.0。应该允许您查看生成的SQL,但它当然不会被保存。启用
ShowSql()
后,查询不会显示在VS输出窗口中。删除
ShowSql()
仍然不会显示在log4net日志中。更正:我已经删除了
ShowSql()
,现在日志似乎正在工作。不幸的是,这并不能改变这种情况。日志输出中仍然没有查询。