技术开发 频道

Enterprise Library 2.0 :日志应用程序块(二)

【IT168技术文档】

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

打开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配置的一部分。

4.拷贝输出程序集到Enterprise Library的安装bin目录下面。选择项目EnoughPI.Logging,选择Project | EnoughPI.Logging Properties菜单命令,并选择Build Events项,添加如下命令到编译完成后事件中:
copy "$(TargetPath)" "..\..\..\..\..\..\..\..\..\bin"

 

 


Enterprise Library Configuration工具将会自动加载相同目录下的程序集。
5.选择File | Save All菜单保存。

6.选择Build | Build Solution,编译整个解决方案。

0
相关文章