企业库日志应用程序模块工作原理图:

从上图我们可以看清楚企业库日志应用程序模块的工作原理,其中LogFilter,Trace Source,Trace Listener,Log Formatter的信息都可以在Category配置文件中反映出来,通过配置文件,调用LogWriter类的Writer方法,就可以将包含日志信息的LogEntry实体写入Category配置文件中指定的设备了.

企业库日记应用程序模块提供了下列几种记录方法:

· The event log

· An e-mail message

· A database

· A message queue

· A text file

· A Windows®Management Instrumentation (WMI) event

· Custom locationsusing application block extension points

本文介绍一下如何使用企业库日记应用程序模块向日志文件,数据库,XML文件中写入程序操作日记:

一.  向日志文件写入日记

1. 运行EntLibConfig.exe,选择Blocks菜单 ,单击 Add LoggingSettings .

  2.       对每个模块进行配置:

  3.点击 File 菜单,单击 Save,保存为一个App.config文件,可以先保存到桌面,之后要用到它.

  4.创建一个新的控制台应用程序,将App.config添加到程序内,并加入需要的Dll文件,在此我们要导入的是Microsoft.Practices.EnterpriseLibrary. Logging.dll, Microsoft.Practices.EnterpriseLibrary. Logging.Database.dll并添加需要的引用:

  添加引用:

using Microsoft.Practices.EnterpriseLibrary. Logging;

5测试:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Practices.EnterpriseLibrary.Logging;
namespace ConsoleApplication1
{
class Program
    {
static void Main(string[] args)
        {
            LogEntry logEntry = new LogEntry();
            logEntry.EventId = 1;
            logEntry.Priority = 1;
            logEntry.Title = "标题党";
            logEntry.Message = "http://www.cnblogs.com/huangcong/";
            logEntry.Categories.Add("C#学习");
            logEntry.Categories.Add("Microsoft Enterprise Library学习");
            Logger.Writer.Write(logEntry, "General");
            Console.WriteLine("日志写入完成!");
        }
    }
}

运行结果:

6. 开始—控制面板—系统和安全—查看事件日志—Windows日志—应用程序:

7.       第一个日志就是我们刚刚写入的日志啦,双击可以查看内容:

二.   向数据库写入日记

1.       要将日志写入数据库,就得先新建一个日志数据库,我们可以在EntLib50Src文件夹下的Source\Blocks\Logging\Src\DatabaseTraceListener\Scripts目录中找到LoggingDatabase.sql文件,只要在数据库中运行即可自动生成一个日志数据库:

为了方便大家,我直接将该文件发布在下面,大家直接复制到SQL中运行也可以:

Logging数据库创建SQL

2.       点击Logging Target Listeners 区块右上角的加号按钮, Add Logging Target Listeners然后点击 Add Database Listeners ,属性设置如下:

3. File—Save,保存App.config,无需改动VS中的程序直接再次运行,运行结果如下:

4.       查看Logging数据库,可以看到刚刚写入的日志:

SELECT * FROM [Logging].[dbo].[Category]
GO
SELECT * FROM [Logging].[dbo].[Log]
GO

三.  向XML文件写入日记

1.    创建一个XML文件,我建在上面创建好的工程目录下,命名为test.xml, 点击Logging Target Listeners 区块右上角的加号按钮,Add Logging Target Listeners然后点击 Add XML Listeners ,属性设置如下:

2.       File—Save,保存App.config,无需改动VS中的程序直接再次运行,运行结果如下:

3.       打开test.xml文件,内容如图所示:

Microsoft Enterprise Library 5.0 系列(四)的更多相关文章

  1. 黄聪:Microsoft Enterprise Library 5.0 系列教程(四) Logging Application Block

    原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(四) Logging Application Block 企业库日志应用程序模块工作原理图:   从上图我们可以 ...

  2. Microsoft Enterprise Library 5.0 系列教程(四) Logging Application Block

    Download dll: http://www.microsoft.com/en-us/download/confirmation.aspx?id=15104 http://www.cnblogs. ...

  3. 黄聪:Microsoft Enterprise Library 5.0 系列教程(七) Exception Handling Application Block

    原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(七) Exception Handling Application Block 使用企业库异常处理应用程序模块的 ...

  4. 黄聪:Microsoft Enterprise Library 5.0 系列教程(六) Security Application Block

    原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(六) Security Application Block 开发人员经常编写需要安全功能的应用程序.这些应用程序 ...

  5. 黄聪:Microsoft Enterprise Library 5.0 系列教程(五) Data Access Application Block

    原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(五) Data Access Application Block 企业库数据库访问模块通过抽象工厂模式,允许用户 ...

  6. 黄聪:Microsoft Enterprise Library 5.0 系列教程(三) Validation Application Block (高级)

    原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(三) Validation Application Block (高级) 企业库验证应用程序模块之配置文件模式: ...

  7. 黄聪:Microsoft Enterprise Library 5.0 系列教程(三) Validation Application Block (初级)

    原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(三) Validation Application Block (初级) 企业库提供了一个很强大的验证应用程序模 ...

  8. 黄聪:Microsoft Enterprise Library 5.0 系列教程(二) Cryptography Application Block (高级)

    原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(二) Cryptography Application Block (高级) 本章介绍的是企业库加密应用程序模块 ...

  9. 黄聪:Microsoft Enterprise Library 5.0 系列教程(二) Cryptography Application Block (初级)

    原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(二) Cryptography Application Block (初级) 企业库加密应用程序模块提供了2种方 ...

随机推荐

  1. Navigation Pane不能设置显示标题

    https://msdn.microsoft.com/VBA/Word-VBA/articles/view-showheading-method-word https://social.msdn.mi ...

  2. 第二篇:_UICascadingTextStorage attributesAtIndex:effectiveRange:]: Range or index out of bounds

    注意下文标红字段: #pragma mark- 输入改变时 - (void) textFieldDidChanged:(UITextField *) TextField{ //搜索关键字一旦改变,将重 ...

  3. Tokumx vs Mongodb

    Mongodb是一个文档型nosql数据库 採用C++编写 Mongo DB最大的优势在于全部的数据持久操作都无需开发者手动编写SQL语句,直接调用方法就能够轻松的实现CRUD操作. 非常多人觉得mo ...

  4. DownLoadManager[20530:228829] DiskImageCache: Could not resolve the absolute path of the old directory.

    uiwebview 模拟器打开PDF文件时崩溃.报下面错误,还不知道为什么 DownLoadManager[20530:228829] DiskImageCache: Could not resolv ...

  5. Xor - Trie树

    题目描述 求一棵带边权的树的一条最大 Xor 路径的值.这里的"路径"不一定从根到叶子结点,中间一段路径只要满足条件也可以. 输入格式 第一行,一个整数 N ,表示一颗树有 N 个 ...

  6. Android最新组件RecyclerView,替代ListView

    转载请注明出处:http://blog.csdn.net/allen315410/article/details/40379159 万众瞩目的android最新5.0版本号不久前已经正式公布了,对于我 ...

  7. Compile Graphics Magick, Boost, Botan and QT with MinGW64 under Windows 7 64

    Compile Graphics Magick, Boost, Botan and QT with MinGW64 under Windows 7 64 Sun, 01/01/2012 - 15:43 ...

  8. 【14.94%】【codeforces 611E】New Year and Three Musketeers

    time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...

  9. React中的state与props的再理解

    props可以看做是 property 的缩写的复数,可以翻译为属性,类似于HTML 标签的自定义属性.在大多数React教程里讲 state 和 props 主要的区别在于 props 是不可变的, ...

  10. droid开发中监听器的三种实现方法(OnClickListener)

    Android开发中监听器的实现有三种方法,对于初学者来说,能够很好地理解这三种方法,将能更好地增进自己对android中监听器的理解. 一.什么是监听器. 监听器是一个存在于View类下的接口,一般 ...