NHibernate SQL探测工具 NHProfAppender 的使用

来源:互联网 发布:南通大学网络公选课 编辑:程序博客网 时间:2024/06/07 07:03

NHibernate框架使用时,经常需要跟踪SQL脚本,牛X的工具当然就是 NHProfAppender了,不过网上对这个工具的使用方法说的不多,俺在这里备注下,希望能帮助那些还不清楚的朋友们。

1 下载引用

我这里整理了一份:http://download.csdn.net/detail/xz2001/5010939

下载后解压到一个固定目录,相当于一个绿色软件来使用,然后在你的项目中引用如下两个DLL:

HibernatingRhinos.Profiler.Appender.dll

HibernatingRhinos.Profiler.Appender.NHibernateLog4Net.dll

2 配置log4net

 NHProfAppender 配置要用到log4net,如果对log4net不清楚请看下这篇:http://blog.csdn.net/xz2001/article/details/8450548

很简单,看下我的配置文件:

<?xml version="1.0" encoding="utf-8" ?><configuration><configSections><section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" /></configSections><log4net><appender name="NHProfAppender" type="HibernatingRhinos.Profiler.Appender.NHibernate.NHProfAppender, HibernatingRhinos.Profiler.Appender.NHibernateLog4Net"><sink value="http://localhost:8010"/></appender><appender name="LogFile" type="log4net.Appender.FileAppender,log4net"><param name="File" value="Logs\\error.log"/><layout type="log4net.Layout.PatternLayout"><param name="ConversionPattern" value="%d [%t] %-5p %c %m%n"/></layout></appender><root><level value="ERROR" /><appender-ref ref="LogFile" /><appender-ref ref="NHProfAppender"/></root></log4net></configuration>

注意看第7、8(修改成你项目的URL)、9行和19行,这是配置的重点,其他的是日志文件配置。

3 设置log4net配置文件路径

我的log4net配置文件放这里: Config/log4net.xml,这里需要修改两处:

在 AssemblyInfo.cs 文件最后一行加入:

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Config\\log4net.xml", Watch = true)]

在 Global 中的Start事件中类似这样:

        protected void Application_Start()        {            AreaRegistration.RegisterAllAreas();            log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo("Config/log4net.xml"));            HibernatingRhinos.Profiler.Appender.NHibernate.NHibernateProfiler.Initialize();            RegisterGlobalFilters(GlobalFilters.Filters);            RegisterRoutes(RouteTable.Routes);        }
这里要注意一下,如果你的框架中使用Spring.NET框架,第4行是必须的“log4net.Config.XmlConfigurator.Configure(new FileInfo("log4net_config.xml"));”,没有用Spring.NET的话可以没有,这个我仅在自己的项目环境中测试,如果在使用时遇到问题,可以留意下这个问题。

4 使用方法

先到NHProfAppender解压目录中运行“NHProf.exe”,然后在浏览器里访问你的Web项目,切回NHProfAppender看下,有了吧。

很简单,只是配置的时候要注意一下,另外,同一个HTTP请求可能有多个Session;还有,多次访问产生太多的Session找起来可能有些麻烦,可以点击右键把之前访问的Session清除,重新请求后再检查。