Microsoft Enterprise Library 5.0 系列(四)
企业库日志应用程序模块工作原理图:

从上图我们可以看清楚企业库日志应用程序模块的工作原理,其中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 系列(四)的更多相关文章
- 黄聪:Microsoft Enterprise Library 5.0 系列教程(四) Logging Application Block
原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(四) Logging Application Block 企业库日志应用程序模块工作原理图: 从上图我们可以 ...
- Microsoft Enterprise Library 5.0 系列教程(四) Logging Application Block
Download dll: http://www.microsoft.com/en-us/download/confirmation.aspx?id=15104 http://www.cnblogs. ...
- 黄聪:Microsoft Enterprise Library 5.0 系列教程(七) Exception Handling Application Block
原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(七) Exception Handling Application Block 使用企业库异常处理应用程序模块的 ...
- 黄聪:Microsoft Enterprise Library 5.0 系列教程(六) Security Application Block
原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(六) Security Application Block 开发人员经常编写需要安全功能的应用程序.这些应用程序 ...
- 黄聪:Microsoft Enterprise Library 5.0 系列教程(五) Data Access Application Block
原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(五) Data Access Application Block 企业库数据库访问模块通过抽象工厂模式,允许用户 ...
- 黄聪:Microsoft Enterprise Library 5.0 系列教程(三) Validation Application Block (高级)
原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(三) Validation Application Block (高级) 企业库验证应用程序模块之配置文件模式: ...
- 黄聪:Microsoft Enterprise Library 5.0 系列教程(三) Validation Application Block (初级)
原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(三) Validation Application Block (初级) 企业库提供了一个很强大的验证应用程序模 ...
- 黄聪:Microsoft Enterprise Library 5.0 系列教程(二) Cryptography Application Block (高级)
原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(二) Cryptography Application Block (高级) 本章介绍的是企业库加密应用程序模块 ...
- 黄聪:Microsoft Enterprise Library 5.0 系列教程(二) Cryptography Application Block (初级)
原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(二) Cryptography Application Block (初级) 企业库加密应用程序模块提供了2种方 ...
随机推荐
- 华为上机试题(java)
一.题目描述:通过键盘输入一串小写字母(a~z)组成的字符串.请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉.比如字符串“abacacde”过滤结果为“abcde”. ...
- [tmux] Create collections of panes using tmux windows
In tmux, a window is a collection of panes. Creating multiple windows is a great way to organize you ...
- JBoss AS 7之初步了解(The Return Of The King)
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvam9obl9mX2xhdQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQk ...
- Notes on OpenSSL and Qt(ssl.pri,qsslocket_openssl_symbols.cpp)
Libraries name of openssl? The "library" portion of OpenSSL consists of two libraries. On ...
- CSS拾遗(二)
接CSS拾遗(一). 4. 不透明度 opacity: 0.8; filter: alpha(opacity=80); opacity: 0.8是标准的写法:filter: alpha(opacity ...
- 简单的记录一下JavaScript 高级应用
我是一名.net 程序员但是由于公司需求,开发离线app,但是在工作的过程中我发现,周围人在写JavaScript的时候都是面向过程的编码,对于我这.net程序员,遇到这种情况真是六神无主,但是工作中 ...
- 【oracle ocp 知识点二】
1.数据库操作语言 DML在运行时下面的语句 添加一个新行到表 更新表现出一定的线 从表删除现有行 一个事务处理是由一系列的DML语句逻辑组成 A.insert 每次插入一行数据 字符和日期的须要单引 ...
- Net多线程编程
Net多线程编程—使用Visual Studio 2012进行调试 1 相关概念 1)栈帧 C语言中,每个栈帧对应着一个未运行完的函数.栈帧中保存了该函数的返回地址和局部变量. 栈帧也叫过程活动记录, ...
- 使用VisualTreeHelper.GetDrawing(Visual v)枚举所有Visual内容的对象
原文:使用VisualTreeHelper.GetDrawing(Visual v)枚举所有Visual内容的对象 C#代码:public void RetrieveDrawing(Visual v) ...
- 制作一个简单的WPF图片浏览器
原文:制作一个简单的WPF图片浏览器 注:本例选自MSDN样例,并略有改动.先看效果: 这里实现了以下几个功能:1. 对指定文件夹下所有JPG文件进行预览2. 对选定图片进行旋转3. 对选定图片 ...