log4net配置写入SQL Server数据库(sqlserver-sqlclient) 并传入自定义业务对象

来源:互联网 发布:sql中like的通配符 编辑:程序博客网 时间:2024/06/05 08:28

http://www.cnblogs.com/Arlen/archive/2008/11/22/1338908.html

       本贴在原来帖子的基础上有些修改,经过本人的实际运行调试运行,本贴中的代码都可以直接复制使用。

       在项目中需要记录业务日志(即用户进行了什么操作,操作什么内容,什么时候,操作内容以结构化的方式存储,以方便以后数据挖掘)。

      系统采用了log4net来将业务日志记录到数据库中,反正在log4net中加个Appender就可以。由于业务需要记录的并不是简单的系统时间%date,级别%level,信息%message等字段,而是自定义的业务字段。发现记录日志的info,error,debug等方法可以传入object参数:log.info(object message)。于是到网上查找它是不是象我们预想的这样,传一个自定义的业务日志对象给info方法,它自动帮我得到该业务对象的字段的值。找了半天,答案是:不行

仔细想了下,难道别人都不这样用吗?别人是怎么传入自定义业务对象?

虽然看起来已经没有什么必要,但还是自己做出了解决方案。

下面把配置方式及传入自定义业务对象的解决方案附上。

一、log4net针对sqlserver的配置方式:

(注:如果配置写入数据库,需要将System.Data.dll拷到bin目录下。)

再写入数据库之前,首先看一下,将要写入的数据库表的结构。


 

表名是test_log

再看看我们自定义的消息类。

万事具备,只欠东风了,下面就是配置文件了。

 

 

到了这里,程序还不能运行,对了,还少一个东西,那就是自定义的MyLayout呀,下面给出代码。

代码的调用

 运行结果。

 

 

大功告成啦。

 

原创粉丝点击