• 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

     

  • 相关阅读:
    Java面向对象之内部类(匿名内部类)
    Java面向对象之内部类(访问格式)
    Java面向对象之USB接口实例
    Java面向对象之多态(成员访问特点) 入门实例
    Java面向对象之多态(向上、向下转型) 入门实例
    Java面向对象之接口interface 入门实例
    Ansible 的安装
    Windows server 2016安装Docker EE
    Docker-py 的使用
    flask 上传文件
  • 原文地址:https://www.cnblogs.com/rickie/p/104145.html
Copyright © 2020-2023  润新知