zoukankan      html  css  js  c++  java
  • 使用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'

  • 相关阅读:
    大道至简阅读笔记03
    团队项目二阶段-个人总结07
    团队项目二阶段-个人总结06
    团队项目二阶段-个人总结05
    学习进度条06
    领扣(LeetCode)单调数列 个人题解
    领扣(LeetCode)数字转换为十六进制数 个人题解
    领扣(LeetCode)字符串相加 个人题解
    领扣(LeetCode)删除链表中的节点 个人题解
    领扣(LeetCode)有效的括号 个人题解
  • 原文地址:https://www.cnblogs.com/xiaohui1990/p/3818758.html
Copyright © 2011-2022 走看看