使用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‘

使用Log4net调试NHibernate,布布扣,bubuko.com

时间: 2025-01-02 03:24:17

使用Log4net调试NHibernate的相关文章

Log4Net 调试时输出sql到 视图-&gt;输出的sql语句

1.log4net.xml <?xml version="1.0" encoding="utf-8" ?> <!--log4net 配置--> <log4net debug="true"> <appender name="AspNetTraceAppender" type="log4net.Appender.AspNetTraceAppender"> <

程序的记事本--log4net

你是否在遇到程序运行问题时经常百度?你是否在遇到运行错误时经常去询问别人?如果有那么是时候改变啦,对于一个Developer来说那是不专业的表现,专业的Developer都会首先查看程序的运行日志,先从日志下手,分析问题发生的原因,然后修复它.这里面最重要的就是日志,那么你也就会很好奇,这些日志是如何记录的呢,偷偷的告诉你通常使用的是日志管理框架.那么是不是也想在开发程序时开发出一个日志管理的模块呢,不用着急下面就来介绍下如何做日志管理. 就我所知现在日志管理框架有多种如 Enterprise.

[NHibernate]ISessionFactory配置

系列文章 [Nhibernate]体系结构 引言 在上篇文章学习了orm和nhibernate相关概念,这篇文章主要学习ISessionFactory如何配置. 因为NHibernate被设计为可以在许多不同环境下工作,所以它有很多配置参数.不过,大部分都已经有默认值了.NHibernate.Test.dll包含了一个示例的配置文件app.config,它演示了一些可变的参数. 可编程配置方式 NHibernate. Cfg.Configuration的一个实例代表了应用程序中所有的.Net类到

.NET日志记录框架Log4Net使用总结

做项目,记录日志是免不了的.在开发过程中还可以调试,但是在项目发布之后,不可能长期这么做,日志则能够在最快的时间内发现问题.最近,在好几个项目中使用了Log4net,感觉确实给我省了不少力,总结一下使用吧,同时也留作以后备用. 1 使用Nuget安装Log4Net: Install-Package log4net 2 创建LogHelper.cs using System; namespace UCsoft.Web.Common { /// <summary> /// Log4Net日志封装类

【转载】ADO.NET与ORM的比较(2):NHibernate实现CRUD

[转载]ADO.NET与ORM的比较(2):NHibernate实现CRUD  转自周公 说明:个人感觉在Java领域大型开发都离不了ORM的身影,所谓的SSH就是Spring+Struts+Hibernate,除了在学习基础知识的时候被告知可以使用JDBC操作数据库之外,大量的书籍中都是讲述使用Hibernate这个ORM工具来操作数据.在.NET中操作数据库的方式有多种,除了最直接的方式就是使用ADO.NET之外,还可以使用NHibernate这个Hibernate在.NET中的实现ORM,

基于Log4Net记录日志到SQLServer

本文记录通过log4net将日志信息记录到SQLServer数据库中. 1.新建控制台应用程序 Log4NetDemo: 2.通过NuGet安装Log4Net (项目版本2.0.8): 3.项目根目录下添加 log4net.config 配置文件: <?xml version="1.0"?> <configuration> <!--声明一个名为"log4net"的自定义配置节--> <configSections> &

Oracle中Clob类型处理解析 (转)

转:原文:http://blog.csdn.net/pojianbing/article/details/2789426 最近利用NHibernate映射类型为Clob字段在插入数据时发现当字符的字节数(一个半角字符一个字节,一个全角字符两个字节)在2000-4000之间时报错(ORA-01461:仅可以插入LONG列的LONG值赋值).经过不断查找资料和自己的试验该问题终于得到解决,下边我将自己的心得给大家做一个分享. 准备 系统环境 xp+.net2.0+oracle9i 表结构(由于是测试

log4net NHibernate日志配置

1. 通过Nuget引用log4net 2. 在程序开始的执行的地方(一般是在Global.asax文件中)加入下面log4net配置语句 protected void Application_Start() { log4net.Config.XmlConfigurator.Configure(); } 3. 在web.config 中configuration 节点中 加入如下配置 <configuration> <configSections> <section name

log4net 存储到oracle 调试 Could not load type [log4net.Appender.OracleAppender]

近期在弄webfrom oracle 调用 log4net 開始调试时不出数据,打开了log4net 自己的debug功能后发现: log4net: Logger [root] level set to [name="ALL",value=-2147483648]. log4net: Loading Appender [OracleAppender] type: [log4net.Appender.OracleAppender] log4net:ERROR Could not crea