Enterprise Library 3.0 -- Logging Application Block 记录日志至数据库

    安装Enterprise Library 3.0及其源码,然后编译源码,在EntLib3Src\App Blocks\bin文件夹中生成37dll文件,包括了Enterprise Library 3.0的所有“Block”,EntLibConfig.exe是可视化配置文件改写工具,正因为这个可视化配置工具,我才没有选用Log4Net而选用了Logging做为日志记录组件,也才有了今天的这篇随笔。

    本文说一下如何使用Logging把日志记录到数据库中,对于记录至其它文件/媒体介质不做叙述。

1.LoggingDatabase.sql

LoggingDatabase.sql文件在EntLib3Src\App Blocks\Src\Logging\TraceListeners\Database\Scripts下,如果要把日志记录在数据库,那么请先使用此sql脚本创建数据库。

执行此sql脚本后,生成三个表:CategoryCategoryLogLog,四个存储过程:AddCategoryClearLogsInsertCategoryLogWriteLog

2.创建你的web项目或windows项目,将EntLib3Src\App Blocks\bindll(37dll不是全部用到,我偷懒给全部复制过来了)复制到创建的项目的bin中,同时将EntLibConfig.exe文件也复制过来吧。

3.启动EntLibConfig.exe,并打开你的项目的web.configapp.config,如下图:

 

4.Connection Strings节点右键,new-> Connection String,连接字符串改为第1步中创建的数据库的连接字符串,如:Database= Logging;Server=ZT-103\SQLEXPRESS;uid=sa;pwd=123;

注意 Connection String”也是可以改名的,修改后保存,见下图:

 

因为记录日志至数据库,使用到了Data Access Application Block,所以这一步是配置了一个Data Access实例做为数据记录源。配置完了,可以将LocalSqlServer删除掉,不删除也不影响,反正后边也用不到。

5.按下图所示,从右键菜单新建一个“Logging Application Block

 

在新建的Logging Application Block节点下自动出现了Filters,Category Source,Special Source,Trace Listeners,Formatters这样的几个节点,如下:

 

这五个节点说明
Filters:设定过滤器,可设置那些日志会被记录下来,可以按日志分类,优先级,自定义日志过滤条件。
Category Source:按分类设定该分类的消息记录到的目标位置,如你可以设置A分类记录在数据库,而B分类记录在文本文件;
Special Source:根据日志的事件类型,来指定日志记录的目标位置,如你可以将错误&警告信息记录在数据库,其它的事件类型的日志记录在系统日志;
Trace Listeners:Enterprise Library 3.0 提供了10种Trace Listeners,分别用于将日志信息记录到不同目的地中,可以记录至文本文件,事件日志,Email,XML文档,数据库,Msmq消息队列,windows的事件日志等;
Formatters:它用于指定日志信息的格式,有三种格式:Text,Custom,Binary;


6.
Trace Listeners上右键,new->Database Trace Listener,如下图所示设置:

 

7.选择Special Sources->Logging Errors & Warnings->Formatted EventLog TraceListener,将ReferencedTraceListener更换成:Database Trace Listener,将Formatter指定为Text Formatter,如下图:

 

8.同时将Category Sources-> General-> Formatted EventLog TraceListener中的ReferencedTraceListener也换成:Database Trace Listener,将Formatter指定为Text Formatter,如下图:

 

9.在你的web页中添加如下代码,测试日志记录功能:


打开数据库查看,正常的话,应该可以看见一条新记录。

晚上写的,有点累了写的象流水帐,没什么心得可言,对于初次接触Logging的同行来说,希望能通过一个简单的过程,让自己的Logging跑起来,我的目标就达到了。其它的,各位看官有问题请回复,园子里有好多篇关于Logging Application Block 1.0/2.0的文章,可以搜索一下,另外2.0和3.0的Logging Block使用上并没有太大区别,可以参考一下。
posted on 2007-05-02 22:46  三千  阅读(1763)  评论(5编辑  收藏  举报