【发布时间】:2012-02-01 11:44:07
【问题描述】:
虽然有很多关于这个主题的问题和答案,但我无法找到我的问题的答案。我已经为 NHibernate 配置了 log4net,如下所述:http://nhibernate.hibernatingrhinos.com/19/how-to-configure-log4net-for-use-with-nhibernate
唯一的区别是我将 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 NHibernate 配置中删除
ShowSql()调用。 -
@Pieter - 当您启用 ShowSql() 时,您至少在 VS 输出窗口中看到它吗?这对我来说适用于 FNH 1.0。应该可以让您看到生成的 SQL - 当然它不会被保存。
-
启用
ShowSql()后,查询不会显示在 VS 输出窗口中。删除ShowSql()仍然不会显示在 log4net 日志记录中。 -
更正:我已删除
ShowSql(),现在日志记录似乎工作正常。
标签: nhibernate fluent-nhibernate log4net