来源:
http://wiki.castleproject.org/index.php/ActiveRecord:Troubleshooting故障检测
有时候你的映射可能存在一些错误,或者你想看你的sql语句到底是什么一回事这个时候我们就需要把 NHibernate 的日记记录打开
允许日记记录
nhibernate用的是log4net. 以下的配置中他是将信息写到 log.txt中的(程序运行的时候被锁定了你可以拷贝一份来查看)
<?xml version="1.0" encoding="utf-8" ?>
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<configuration>
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<configSections>
<section name="nhibernate" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.5000.0,Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="activerecord"
type="Castle.ActiveRecord.Framework.Config.ActiveRecordSectionHandler, Castle.ActiveRecord" />
<section name="log4net"
type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<activerecord>
![](https://www.cnblogs.com/Images/dot.gif)
</activerecord>
<log4net>
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<!-- Define some output appenders -->
<appender name="trace" type="log4net.Appender.TraceAppender, log4net">
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] <%P{user}> - %m%n" />
</layout>
</appender>
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<appender name="console" type="log4net.Appender.ConsoleAppender, log4net">
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] <%P{user}> - %m%n" />
</layout>
</appender>
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<appender name="rollingFile" type="log4net.Appender.RollingFileAppender,log4net" >
<param name="File" value="log.txt" />
<param name="AppendToFile" value="true" />
<param name="RollingStyle" value="Date" />
<param name="DatePattern" value="yyyy.MM.dd" />
<param name="StaticLogFileName" value="true" />
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] <%X{auth}> - %m%n" />
</layout>
</appender>
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<root>
<!-- priority value can be set to ALL|INFO|WARN|ERROR -->
<priority value="ALL" />
<appender-ref ref="rollingFile" />
</root>
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</log4net>
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<nhibernate>
<!-- with this set to true, SQL statements will output to the console window if it's a console app -->
<add key="hibernate.show_sql" value="true" />
</nhibernate>
</configuration>
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
在完成这个之后你必须调用这个方法
log4net.Config.XmlConfigurator.Configure();
一般写在 global.asax中
注意这个方法必须写在ActiveRecordStarter.Initialize(...)之前
你可以在log.txt中搜索你的hql语句.这样就可以在下面的几行里看到sql语句了