原文地址:http://aspnet.4guysfromrolla.com/articles/031407-1.aspx
作者:Scott Mitchell
介绍
在程序部署之前,要经历许多软件工程中定义的重要阶段,如需求分析、设计、编码和测试等。 但是,并不是说一旦程序部署并使用之后就脱离软件工程的各个阶段了。 不管一个web程序有多好的设计、多好的编码、多好的测试,它总是会有掉链子的时候。 如数据库服务器掉线,web站点比你凭经验预期的有更大的负载,或者你的web服务器本身的硬件出现问题等。 除非你的程序是很轻量级的或者是上帝给你写的,否则它总是会时不时地蹦出一些问题。
为了发现和诊断这些问题,非常重要的一步就是监视web程序并记录日志。 有很多开源的软件和微软开发的类库可以帮助你记录未处理的异常并通知给开发人员。 如何记录未处理的异常可以参看人性化地响应未处理异常 – 处理未经处理的异常。
ASP.NET 1.x不包括任何内嵌的日志和通知系统,所以需要开发人员写一些代码或者做一些配置。 然而,ASP.NET 2.0提供了内嵌的“健康监测”工具,你可以方便快捷地通过配置来把web站点的一些事件记录到事件日志、数据库、WMI、email或ASP.NET页面跟踪系统。 另外,健康监测系统是使用Provider设计模式(译者注:可以看一下我写的ASP.NET 2.0中实现Provider设计模式的文章)开发的,这样我们就可以实现自己的记录日志的逻辑了。
本文是研究ASP.NET 2.0的健康监测系统的系列文章的第一篇。 我们将在此学一学健康监测系统的基础知识,以及如何建立一个健康监测系统,从而将日志记录到SQL Server数据库。 继续往下看,你会知道得更多!
健康监测系统概述
ASP.NET 2.0的健康监测系统是用来监测运营环境中ASP.NET程序的运行状况的。 它可以记录事件信息到一个指定的日志源中。 例如,它可以记录像程序开始和停止、登录的成功和失败、未处理的异常信息等到一个像Windows事件日志或SQL Server数据库这样的日志源。 配置健康监测系统是非常容易的,只用在Web.config中增加一些配置信息从而指定事件监测者和要发往的日志源即可。
虽然.NET 2.0框架提供了一些内嵌的健康监测事件和日志源,但是当你需要增加自定义事件或换成另一个日志源的时候并不需要更改这些东西。 你可以通过扩展WebBaseEvent类来创建新的事件,通过扩展WebEventProvider类来创建自定义的日志源。 健康监测系统可以在设计模式中使用,并且允许你通过对配置信息的一些改变,从而在程序里添加自定义事件和自定义日志源。
在这个系列文章的未来的内容里,我们将会探讨一下如何创建自定义事件和自定义日志源。 而本文中,我们将只使用内嵌的事件和日志源来做示例。