Enterprise Library 2.0 Hands On Lab 翻译(5):日志应用程序块(二)

练习2:创建并使用自定义的Trace Listener

在本练习中将创建一个自定义的Trace Listener,发送日志项到一个标准的控制台输出,并添加该Trace Listener到EnoughPI应用程序。

第一步

打开EnoughPI.sln项目,默认的安装路径应该为C:\Program Files\Microsoft Enterprise Library January 2006\labs\cs\Logging\exercises\ex02\begin,并编译。

第二步 创建自定义Trace Listener

1.选择项目EnoughPI.Logging,选择Project | Add Reference…菜单命令,添加如下程序集,默认的位置应该为C:\Program Files\Microsoft Enterprise Library January 2006\bin。

Microsoft.Practices.EnterpriseLibrary.Common.dll

Microsoft.Practices.EnterpriseLibrary.Logging.dll


2.在解决方案管理器中选择TraceListeners\ConsoleTraceListener.cs文件,单击View | Code菜单命令,添加如下命名空间。

using Microsoft.Practices.EnterpriseLibrary.Common.Configuration;
using Microsoft.Practices.EnterpriseLibrary.Logging;
using Microsoft.Practices.EnterpriseLibrary.Logging.Configuration;
using Microsoft.Practices.EnterpriseLibrary.Logging.Formatters;
using Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners;

3.添加如下代码到ConsoleTraceListener类中。

[ConfigurationElementType(typeof(CustomTraceListenerData))]
public class ConsoleTraceListener : CustomTraceListener
{
  public ConsoleTraceListener()
    : base()
  {
  }
  public override void TraceData(TraceEventCache eventCache,    string source, TraceEventType eventType, int id, object data)
  {
    if (data is LogEntry && this.Formatter != null)
    {
      this.WriteLine(this.Formatter.Format(data as LogEntry));
    }
    else
    {
      this.WriteLine(data.ToString());
    }
  }
  public override void Write(string message)
  {
    Console.Write(message);
  }
  public override void WriteLine(string message)
  {
    // Delimit each message
    Console.WriteLine((string)this.Attributes["delimiter"]);
    // Write formatted message
    Console.WriteLine(message);
  }
}

注意这里需要继承于基类CustomTraceListener,并且需要覆写基类中的两个抽象方法:Write(string message)和WriteLine(string message),另外由于需要格式化日志信息,还需要覆写TraceData方法。ConsoleTraceListener类有一个参数delimiter,作为Listener配置的一部分。

时间: 2024-09-17 04:05:46

Enterprise Library 2.0 Hands On Lab 翻译(5):日志应用程序块(二)的相关文章

Enterprise Library 2.0 Hands On Lab 翻译(4):日志应用程序块(一)

练习1:添加日志记录到应用程序中 该练习将示范如何向已有的应用程序中添加日志和监测(Trace姑且这么翻译吧,不太准确),并通过Enterprise Library Configuration工具来配置TraceListeners. 第一步 打开EnoughPI.sln项目,默认的安装路径应该为C:\Program Files\Microsoft Enterprise Library January 2006\labs\cs\Logging\exercises\ex01\begin,并编译. 第

Enterprise Library 2.0 Hands On Lab 翻译(3):数据访问程序块(三)

练习3:加密数据库连接信息 通过该练习,你将学会如何去加密数据库连接信息. 第一步 打开DataEx3.sln项目,默认的安装路径应该为C:\Program Files\Microsoft Enterprise Library January 2006\labs\cs\Data Access\exercises\ex03\begin,并编译. 第二步 加密数据库连接字符串 1.在Enterprise Library1.1中加密连接字符串,需要依赖于Cryptography Application

Enterprise Library 2.0 Hands On Lab 翻译(15):加密应用程序块(二)

练习2: 使用哈希加密密码 在本练习中将使用哈希加密密码并存储在XML文件中. 第一步 打BugSmak.sln项目,默认的安装路径应该为C:\Program Files\Microsoft Enterprise Library January 2006\labs\cs\Cryptography\exercises\ex02\begin,并编译. 第二步 回顾应用程序 1.选择Debug | Start Without Debugging菜单命令运行应用程序. 2.应用程序允许在一个XML文件中

Enterprise Library 2.0 Hands On Lab 翻译(12):安全应用程序块(一)

练习1:应用程序安全性 通过该练习将在一个已经存在的应用程序中添加认证和基于角色的授权. 第一步 打BugSmak.sln项目,默认的安装路径应该为C:\Program Files\Microsoft Enterprise Library January 2006\labs\cs\Security\exercises\ex01\begin,并编译. 第二步 在应用程序中添加认证 1.选择Debug | Start Without Debugging菜单命令运行应用程序.应用程序当前没有可以使用的

Enterprise Library 2.0 Hands On Lab 翻译(10):缓存应用程序块(二)

练习2:持久缓存 该练习将示范如何持久缓存. 第一步 打开EmployeeBrowser.sln 项目,默认的安装路径应该为C:\Program Files\Microsoft Enterprise Library January 2006\labs\cs\Caching\exercises\ex02\begin,并编译. 第二步 实现离线缓存 1.在解决方案管理器中选择EmployeeServices.cs文件,选择View | Code菜单命令并添加如下命名空间. using Microso

Enterprise Library 2.0 Hands On Lab 翻译(7):异常应用程序块(一)

练习1: 记录异常信息 通过本练习,将会在一个没有异常处理的应用程序中使用异常处理应用程序块添加本地和全局的异常处理,并记录到Windows事件日志中. 第一步 打开Puzzler.sln 项目,默认的安装路径应该为C:\Program Files\Microsoft Enterprise Library January 2006\labs\cs\Exception Handling\exercises\ex01,并编译. 第二步 回顾应用程序 选择Debug | Start Debugging

Enterprise Library 2.0 Hands On Lab 翻译(2):数据访问程序块(二)

练习2:存储过程和使用程序块更新数据 该练习将示范如何用数据访问应用程序调用存储过程,并使用强类型的DataSet来更新数据. 第一步 打开DataEx2.sln项目,默认的安装路径应该为C:\Program Files\Microsoft Enterprise Library January 2006\labs\cs\Data Access\exercises\ex02\begin,并编译. 第二步 在QuickStarts数据库中添加Categories数据表 运行批处理文件SetUpEx0

Enterprise Library 2.0 Hands On Lab 翻译(14):加密应用程序块(一)

练习1:加解密字符串 通过本练习将学习通过加密来保护信息,在这里创建一个类似于IM的聊天应用程序,加密通信过程中的信息. 第一步 打BugSmak.sln项目,默认的安装路径应该为C:\Program Files\Microsoft Enterprise Library January 2006\labs\cs\Cryptography\exercises\ex01\begin,并编译. 第二步 回顾应用程序 1.在解决方案管理器选中Chat.cs文件,选择View | Code菜单命令.Cha

Enterprise Library 2.0 Hands On Lab 翻译(13):安全应用程序块(二)

练习2:在应用程序中使用基于角色的授权 通过该练习将学习使用AuthorizationProvider在应用程序中进行基于角色的授权. 第一步 打BugSmak.sln项目,默认的安装路径应该为C:\Program Files\Microsoft Enterprise Library January 2006\labs\cs\Security\exercises\ex02\begin,并编译. 第二步 企业库配置工具 1.使用Enterprise Library配置工具配置应用程序,可以通过开始

Enterprise Library 2.0 Hands On Lab 翻译(11):缓存应用程序块(三)

练习3:实现后台缓存 该练习将示范如何实现后台加载. 第一步 打开EmployeeBrowser.sln 项目,默认的安装路径应该为C:\Program Files\Microsoft Enterprise Library January 2006\labs\cs\Caching\exercises\ex03\begin,并编译. 第二步 实现后台加载 1.在解决方案管理器中选择EmployeeServices.cs文件,选择View | Code菜单命令,添加如下两个方法,它们将实现在后台加载