Enterprise Library 2.0 中的 Logging Application Block 在1.0版本中是Logging and Instrumentation Application Block,因為把重點放在了日誌記錄上,所以改名為Logging Application Block。Logging Application Block提供了統一的日誌記錄功能,它支援將日誌寫入到多種目的地中,比如:1、資料庫;2、文字檔;3、Email;4、訊息佇列;5、WMI event;6、事件記錄;7、自訂地區(For Example:XML File)等等。
Logging Application Block 提供了統一的介面用於將日誌寫入到任何指定的目的地,我們不需要在代碼中指定日誌資訊該寫到什麼地方,而是在設定檔中設定我們什麼情況
下寫日誌以及將日誌資訊寫到什麼地方,這也就意味著操作員可以和我們開發人員一樣不通過修改代碼來改變日誌記錄行為。它對於我們程式開發有以下幾點好處:
1、可以使我們的應用程式中的日誌記錄方法保持一致;
2、正是因為它提供一致的結構模型,很大程度上方便了我們開發人員對其的學習;
3、很好的解決了應用程式中的日誌問題;
4、可擴充,我們可以自訂日誌資訊的過濾程式以及格式化日誌資訊的程式
... ...
相對於上一個版本,Logging Application Block 2.0作出了下列改變:
1、LogEntry對象現在可以屬於一個或多個類別(category);
2、2.0版本中我們可以自訂過濾器,在Logging Application Block 將日誌資訊發送給監聽器(trace listeners)之前就將該資訊過濾掉,過濾器支援我們根據事件的類別和(或)優先順序來過濾事件,我們可以定製符合自己需要的標準的過濾器來過濾事件;
3、你可以在代碼中通過查詢過濾器來判斷當前事件是否需要被記錄日誌,這樣就大大減少了我們日誌記錄量,可以有效提高應用程式的效能。
下面我們就來說一下Logging Application Block的使用方法,首先需要添加對下面三個程式集的引用:
using Microsoft.Practices.EnterpriseLibrary.Logging;
using Microsoft.Practices.EnterpriseLibrary.Logging.ExtraInformation;
using Microsoft.Practices.EnterpriseLibrary.Logging.Filters;
和前面幾個Block一樣,在使用之前還是先說一下配置方法,首先用組態工具代開我們程式的App.Config/Web.Config,然後選中Application右鍵,New-->Logging Application Block,如:
這時你會發現,在建立的Logging Application Block節點下自動出現了Filters,Category Source,Special Source,Trace Listeners,Formatters這樣的幾個節點,如下:
我下面按照我配置的順序來說一下每個節點的作用,首先是Formatters,它用於指定日誌資訊的格式,如,我們在Formatters節點下建立一個Text Formatter,如下:
然後我們可以編輯它的模板,編輯我們要顯示的資訊,如下:
我們還可以配置Binary Formatter和自訂的Formatter ,這裡不在多說了。
Formatter配置好了以後,我們就可以來配置Trace Listeners了,Enterprise Library 2.0 提供了七種Trace Listeners,分別用於將日誌資訊記錄到特定的目的地中,下面我們就來配置一個Flat File Trace Listener ,如下:
使用Flat File Trace Listener後,記錄的日誌資訊就輸出到指定的文字檔中,所以我們要指定輸出的文字檔的路徑,預設在Bin/Debug目錄下;同時我們需指定該Listener的Formatter,Name等屬性。如果我們配置的是一個DataBase Listener,我們則要在資料庫中建立相應的表,並建立一個用於插入日誌資訊的預存程序。
Trace Listeners 配置好之後就可以開始配置Category Source,我們建立一個Category Source,命名為General,指定其SourceLevel為All,如下:
之後,我們可以對剛添加的Category Source添加一個或多個Trace Listener,本文中,我們將上面配置的SHY52O Formatter加進來,
如,在RefrenceTraceListener中選擇SHY520 Listeners就可以了。
最後我們來看一下如何配置過濾器(Filters),Enterprise Library 2.0 中提供了三種預設的Filters,分別是:Category Filter ,Log Enable Filter和Priority Filter,我們以Category Filter為例來配置:
然後可以修改過濾器名稱和過濾規則:
這裡面我們可以選擇過濾的模式,過濾模式有兩種:
1、Allow All Categories Except those explicitly denied below
2、Deny All Categories Except those explicitly allowed below
根據我們需要選擇好過濾模式,然後添加需要過濾的類別,點擊OK按鈕即可完成Category Filter的配置。
關於Logging Application Block 的介紹和配置部分就說到這裡,下一篇我們在來介紹Logging Application Block的使用方法以及自訂Formatter和Listener的方法。
如有疏忽錯誤的地方,歡迎指正!希望能對初學者有所協助,並希望能和大家一起交流!
Email:pwei013@163.com