原文地址: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類來創建自定義的日志源。 健康監測系統可以在設計模式中使用,並且允許你通過對配置信息的一些改變,從而在程序裡添加自定義事件和自定義日志源。
在這個系列文章的未來的內容裡,我們將會探討一下如何創建自定義事件和自定義日志源。 而本文中,我們將只使用內嵌的事件和日志源來做示例。