使用EIF执行VB.NET中的事件日志

ZDNet软件频道 时间:2004-02-04 作者:ZDNet China |  我要评论()
本文关键词:.net
BASIC(初学者通用符号指令码)是绝大多数开发人员首次被介绍使用的开发语言──至少那些不是在学Basic之前先以FORTRAN, COBOL, 汇编,甚至机器语言作为入门的人如此,比如我。
本文译自Builder.com,未经许可请勿转载

BASIC(初学者通用符号指令码)是绝大多数开发人员首次被介绍使用的开发语言──至少那些不是在学Basic之前先以FORTRAN, COBOL, 汇编,甚至机器语言作为入门的人如此,比如我。

老程序员都知道BASIC是一门糟糕的语言。从首字母简略词(acronym)到语言的实际结构(包括无法原谅的GoTo命令),程序的安全和BASIC语句都无法结合在一起。

Visual Basic将BASIC转化为一种可使用的程序开发语言,以满足严谨的开发人员所用。然而,Visual Basic也缺乏实际操作中的安全特性。基于此,很多开发人员都选择使用C语言,因为C语言允许程序员在他们的程序中添加加密和其它安全特性。但是C和C++有着自身的缺点,这些缺点包括代码容易受黑客攻击。

虽然微软已经在多年以前就将加密功能添加到Visual Basic,但是很多开发人员还在探讨这一语言可能发生的各种问题。

首先,让我们检查日志记录,尤其是如何使用VB.NET在一个.NET Framework执行日志。事件日志指定你可能进行以下的操作:

  • 事件类型

  • 时间和日期

  • Source

  • 事件ID

  • 运行这一过程的用户帐号

  • 产生事件的计算机目标

    在企业环境中,你可能想要执行多种日志等级和提供分布式程序的中心记录。

    .NET Framework提供了Logging Application Block,即使用Microsoft Enterprise Instrumentation Framework (EIF)的一个可重用的代码块。EIF(.NET Framework v. 1.0 SP2或更高版本)最大程度地简化了日志,并提供了.NET中的事件记录和诊断跟踪的统一管理。(EIF不仅仅是面向企业,它还可用于单一服务器的程序。)

    例如,从程序中引发一个事件只需要一行VB.NET代码:

    EventSource.Application.Raise(adminMessageEvent)

    (在C#中也使用相同的代码。)

     

    EIF体系中包含5个重要的部分:

  • 事件计划(Event schema)具有可扩展性,其描述每一事件类型中的数据类型和程序要引发的事件类型。

  • 事件源(Event sources)为与EIF交互和用于引发事件的程序对象。

  • 指令API(Instrumentation API)处理被引发的事件并处理数据,开发人员可以无需改变原始程序的基础上改变事件报告的方式。

  • EIF中包括三个事件接收器(event sink),以确保事件处于日志存储中:Windows管理指令(Windows Management Instrumentation),Windows 事件日志(Windows Event Log),以及Windows跟踪日志(Windows Trace Log)。

  • XML配置文件决定了如何将引发事件发送到正确的事件接收器(event sink)中。这也就是开发人员如何设置事件源注册,接收器设置,事件类型,以及事件过滤器。

    日志块LB(logging block)为 EIF体系的扩展部分,其具有以下的扩展部分:

  • 格式事件信息

  • 设置日志等级

  • 提供非同步和中心日志

  • 处理Web服务请求跟踪

  • Meter Web服务

    对于安全性而言,事件日志是相当关键的,同样它也是修正程序错误的一种工具。微软通过在EIF中添加Logging Application Block的方式,使得在.NET Framewor中更加容易地建立和管理事件日志。


    本文作者: John McCormick是一位安全管理顾问,在IT领域中深有名气,他已经发表多于15,500篇文章。


    责任编辑:李宁

    欢迎评论投稿

  • 百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
    中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
    京公网安备:1101082134