Enterprise Library: Logging and Instrumentation Application Block数据库接收池(Database Sink)设计向导篇

Enterprise Library: Logging and Instrumentation Application Block数据库接收池(Database Sink)设计向导篇

 

Written by: Rickie Lee (rickieleemail#yahoo.com)

My blog:http://www.cnblogs.com/rickie

Enterprise Library Quick Start中演示了使用Logging and Instrumentation Application Block记录日志信息到Application事件日志和文本文件。这里,演示如何将日志信息写入Database

 

1. 创建Logging数据库环境

你可以使用Logging and Instrumentation Application Block附带的如下SQL语句创建Logging环境:

C:\Program Files\Microsoft Enterprise Library\src\Logging\Sinks\Database\Scripts\CreateLoggingDatabase.cmd

上述SQL语句创建如下对象:

Logging数据库、Log表、WriteLog存储过程。

在实际的应用开发过程中,你可以定制上述环境。

 

2. 创建配置信息

使用Configuration Console配置工具编辑App.config配置文件。完整的配置界面如下所示:
Enterprise_LoggingDatabaseSink_Configuration.JPG

1)首先打开App.config文件,添加Logging and Instrumentation Application Block。缺省情况下,Catagories节点下自动添加GeneralTrace目录,Sinks节点下包含Event Log SinkFlat File Sink

2)在Sinks结点下添加Database SinkConfiguration Console工具自动添加Data Access Application Block,然后根据上述创建的Logging数据库环境,配置Data Access Application Block下的Connection stringsDatabase Instances等等属性,具体操作可以参考《Enterprise Library: Data Access Application Block使用向导,Part 1》和《Enterprise Library: Data Access Application Block使用向导,Part 2》。

3)配置Database Sink节点属性信息,如DatabaseInstance, NameStoredProcName等等,其中StoredProcName采用默认的WriteLog名称。上面在创建Logging数据库环境时,已经创建了该存储过程。

4)在Categories节点下添加新的目录,并命名为Transaction。在Transaction目录节点下添加新的Destination,并命名为Database Destination,同时设置FormmaterNameSink属性。这里Sink属性值设置为上面创建的Database Sink

Demo项目中一共有4个配置文件:

App.config配置文件,包含配置元数据信息。

dataConfiguration.config配置文件,包含数据库配置信息。

loggingconfiguration.config配置文件,包含Logging Application BlockClient Settings的配置信息。

loggingDistributorConfiguration.config配置文件,包含Logging Application BlockDistributor Settings的配置信息。

 

3. Code SnippetDemo界面

1)首先引用相关Assembly文件

在项目中分别引用Microsoft.Practices.EnterpriseLibrary.Logging.dllMicrosoft.Practices.EnterpriseLibrary.Logging.Sinks.Database.dll

 

代码中添加如下using语句:

using Microsoft.Practices.EnterpriseLibrary.Logging;

 

2Demo代码

private void btnLogtoDatabaseSink_Click(object sender, System.EventArgs e)

{

       try

       {

              Cursor.Current = Cursors.WaitCursor;

              LogEntry log = new LogEntry();

              log.Message = "Hello, Rickie.";

              log.Priority = 1;

              log.EventId = 100;

              log.Severity = Severity.Information;

              log.Title = "Demo on Logging and Instrumentation Application Block";

              log.Category = "Transaction";

              Logger.Write(log);

 

              txtResults.Text += log.Message + Environment.NewLine;

       }

       finally

       {

              Cursor.Current = Cursors.Default;

       }

}

 

当然,还需要设置VS.NET 2003项目属性中Build Events属性值:

copy "$(ProjectDir)*.config" "$(TargetDir)"

该设置方便通过VS.NET 2003的代码调试。

 

Demo应用程序界面:

Enterprise_LoggingDemo.JPG

 

***

作者:Rickie Lee (rickieleemail#yahoo.com)

本文参考Microsoft Enterprise LibraryLogging and Instrumentation Application Block文档。

 

References:

1. Microsoft Enterprise Library: Logging and Instrumentation Application Block.

2. Rickie, Microsoft patterns & practices Enterprise Library January 2005 [中文稿], http://www.cnblogs.com/rickie/archive/2005/01/30/99443.html

3. Rickie, Enterprise Library released! http://www.cnblogs.com/rickie/archive/2005/01/29/99106.html

 

posted @ 2005-02-14 07:14  Rickie  阅读(4919)  评论(2编辑  收藏  举报