快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-21

练习1:添加日志记录到应用程序中

该练习将示范如何向已有的应用程序中添加日志和监测(Trace姑且这么翻译吧,不太准确),并通过Enterprise Library Configuration工具来配置TraceListeners。

第一步

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

第二步 关于练习应用程序

选择Debug | Start Without Debugging菜单命令并运行应用程序,EnoughPI程序用来计算∏的精度。在NumericUpDown控件中输入你希望的精度并点击Calculate按钮。

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

第三步 添加日志

1.选择EnoughPI项目,选择Project | Add Reference …菜单命令,在打开的对话框中选择Browse,并添加如下程序集。

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

Microsoft.Practices.EnterpriseLibrary.Logging.dll;

默认的位置应该是C:\Program Files\Microsoft Enterprise Library January 2006\bin。

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

using Microsoft.Practices.EnterpriseLibrary.Logging;

3.记录计算完成时的信息在Calculator.cs文件的OnCalculated方法中添加如下代码。

protected void OnCalculated(CalculatedEventArgs args)
{
  // TODO: Log final result
  LogEntry log = new LogEntry();
  log.Message = string.Format("Calculated PI to {0} digits", args.Digits);
  log.Categories.Add(Category.General);
  log.Priority = Priority.Normal;

  Logger.Write(log);

  if (Calculated != null)
    Calculated(this, args);
}

创建了一个新的日志项LogEntry并设置参数,使用Logger类的静态方法Write()记录到一个或多个TraceListener。注意这里没有使用硬编码而使用常量的Category和Priority,在EnoughPI.Logging的Constants.cs中作了如下定义:

public struct Priority
{
  public const int Lowest = 0;
  public const int Low   = 1;
  public const int Normal = 2;
  public const int High  = 3;
  public const int Highest = 4;
}
public struct Category
{
  public const string General = "General";
  public const string Trace  = "Trace";
}

4.记录计算过程的信息在OnCalculated方法中添加如下代码。

protected void OnCalculating(CalculatingEventArgs args)
{
  // TODO: Log progress
  Logger.Write(
    string.Format("Calculating next 9 digits from {0}", args.StartingAt),
    Category.General,
    Priority.Low
    );

  if (Calculating != null)
    Calculating(this, args);

  if (args.Cancel == true)
  {
    // TODO: Log cancellation
    Logger.Write("Calculation cancelled by user!",
      Category.General, Priority.High);
  }
}

注意这里使用Logger类的重载Write方法来快捷的创建了一个日志项LogEntry。

5.记录计算过程的异常信息,添加如下代码到OnCalculatorException方法中。

protected void OnCalculatorException(CalculatorExceptionEventArgs args)
{
  // TODO: Log exception
  if (!(args.Exception is ConfigurationErrorsException))
  {
    Logger.Write(args.Exception, Category.General, Priority.High);
  }
  if (CalculatorException != null)
    CalculatorException(this, args);
}

注意这里必须测试异常不能是ConfigurationErrorsException,否则你将无法使用

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号