• 使用Log4net调试NHibernate


    摘录:

    使用Log4net调试NHibernate

    如果是Asp.net程序,首先配置web.config文件:

    <?xml version="1.0"?>
    <configuration>
      <!-- Add this element -->
      <configSections>
      <section  name="hibernate-configuration"  type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate" />
      <section type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
      </configSections>
      <!-- Add this element -->
      <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
        <session-factory>
          <property >NHibernate.Dialect.MsSql2000Dialect</property>
          <property >NHibernate.Connection.DriverConnectionProvider</property>
          <property >
            Server=(local);initial catalog=nhibernate;Integrated Security=SSPI
          </property>
          <property >true</property>
          <mapping assembly="Model" />
        </session-factory>
      </hibernate-configuration>
    <log4net>

        <root>
          <!--如果只需要看看Sql设置INFO就够了,如果你要调试可以设置为DEBUG或ALL-->
          <priority value="DEBUG" />
          <appender-ref ref="rollingFile" />
        </root>

        <logger >
          <level value="ALL" />
          <appender-ref ref="rollingFile1" />
        </logger>

        <appender type="log4net.Appender.RollingFileAppender,log4net" >

          <param value="c:log.txt" />
          <param value="false" />
          <param value="Date" />
          <param value="yyyy.MM.dd" />
          <param value="true" />

          <layout type="log4net.Layout.PatternLayout,log4net">
            <param value="%d [%t] %-5p %c [%x] <%X{auth}> - %m%n" />
          </layout>
        </appender>

        <appender type="log4net.Appender.RollingFileAppender,log4net" >

          <param value="c:Applog.txt" />
          <param value="false" />
          <param value="Date" />
          <param value="yyyy.MM.dd" />
          <param value="true" />

          <layout type="log4net.Layout.PatternLayout,log4net">
            <param value="%d [%t] %-5p %c [%x] <%X{auth}> - %m%n" />
          </layout>
        </appender>

      </log4net>
    </configuration>

    以上配置文件 你可以实现让 NHibernate 的调试信息记录在 log.txt 文件中, 因为NHibernate总是会调用配置<root>里面的“appender-ref”来写配置。让系统本身的记录日志保存在Applog.txt文件中,而不让NHibernate的日志影响.

    具体程序代码:

     void Application_Start(object sender, EventArgs e) 
        {
            // 在应用程序启动时运行时加载log4net的配置文件
            log4net.Config.DOMConfigurator.Configure();
        }

    假如有个 _default.aspx 页面, 在此页面中定义两个变量:

    private static readonly ILog log = LogManager.GetLogger(typeof(_Default)); 

    //自动记录本页面的NHibernate调试信息

    private static readonly ILog applicationInfoLog = LogManager.GetLogger("ApplicationInfoLog");
    //记录系统应用程序日志记录

     protected void Page_Load(object sender, EventArgs e)
     {    

            applicationInfoLog.Info("系统日志");

            applicationInfoLog.Debug("这是我在使用Log4Net");

      }


    想看生成的sql语句:(在log.txt中查看黄色字体部分)

    2009-09-23 23:47:24,828 [4] DEBUG NHibernate.SQL [(null)] <(null)> - DELETE FROM Users WHERE @p0 = '100'

    2009-09-23 23:47:24,875 [4] DEBUG NHibernate.SQL [(null)] <(null)> - INSERT INTO Users (name, id) VALUES (@p0, @p1); @p0 = 'chy4', @p1 = '100'

  • 相关阅读:
    移动混合开发
    H5嵌入APP后,原生APP与H5之间交互
    移动混合开发的 JSBridge
    CSS3中transition和animation区别的理解
    git 回滚到指定版本并推送到远程分支
    李刘玉前端开发简历
    vue+axios 前端实现登录拦截(路由拦截、http拦截)
    移动端bug
    隐藏滚动条
    flex布局中子元素宽度失效的问题
  • 原文地址:https://www.cnblogs.com/xiaohui1990/p/3818758.html
Copyright © 2020-2023  润新知