Enterprise Library Step By Step系列(七):日志和監(jiān)測應(yīng)用程序塊——入門篇
寫在前面:最近一段時間項目周期比較緊,所以這篇隨筆出來的比較晚,希望喜歡本系列隨筆的朋友諒解。上篇隨筆寫的也比較簡單,我會抽時間補上的,先向大家道個歉^_^
一.日志和檢測應(yīng)用程序塊概述:
Enterprise Library Logging and Instrumentation Application Block版使開發(fā)人員可以在其應(yīng)用程序中集成標準的日志和監(jiān)測功能。應(yīng)用程序可以使用日志和監(jiān)測塊在多個位置記錄事件:
1.事件日志(Event Log)
2.電子郵件(Email)
3.數(shù)據(jù)庫(DataBase)
4.文本文件(TextFile)
5.消息隊列(MSMQ)
6.WMI
7.用戶自定義
二.日志和監(jiān)測應(yīng)用程序塊在多個方面有助于應(yīng)用程序的開發(fā):
1.它有助于在應(yīng)用程序和整個企業(yè)中維護一致的日志和規(guī)范做法
2.它使用一致的體系結(jié)構(gòu)模型,使開發(fā)人員在學(xué)習(xí)過程中少走一些彎路。
3.它提供了可用于解決常見的應(yīng)用程序日志和規(guī)范問題的實現(xiàn)。
4.它是可擴展的,并支持格式化程序和事件接收器的自定義實現(xiàn)。
三.幾種常見的情況:
開發(fā)人員經(jīng)常編寫需要日志和監(jiān)測功能的應(yīng)用程序。通常,這些應(yīng)用程序必須適當?shù)馗袷交录陀涗浭录徽撌窃诒镜剡€是通過網(wǎng)絡(luò)。在某些情況下,您可能需要對一臺計算機上來自多個源的事件進行整理。
日志和監(jiān)測應(yīng)用程序塊通過收集應(yīng)用程序需要包含的多個最常見的日志和監(jiān)測任務(wù)來簡化應(yīng)用程序的開發(fā)。每個任務(wù)都以一致的方式處理,并從特定的日志和監(jiān)測提供程序中抽象應(yīng)用程序代碼。體系結(jié)構(gòu)模型可讓您通過更改配置來更改基礎(chǔ)事件接收器和格式化程序,而無需更改應(yīng)用程序代碼。
四.日志項概述:
在記錄日志時,都是創(chuàng)建一個日至項來承載記錄的信息。每個日志項具有以下屬性:
Message(必需項)
Cagegory(提供缺省值)
Priority(缺省值為-1)
EventID(缺省值為-1)
Severity(缺省值為Severity Unspecified)
Title(缺省值為“”)
五.幾個重要概念:
Sink:日志記錄的位置
Category:決定了你在程序中添加的日志寫向何處,是通過配置來實現(xiàn)的。比如說我們有兩個Category,第一個我們可以指定Sink為事件日志,第二個我們可以指定Sink為文本文件。
Formatter:格式器決定了日志記錄的格式,通過配置實現(xiàn),在進階篇中我會重點去講。
六.為應(yīng)用程序添加日志:
為應(yīng)用程序添加日志,步驟跟其他的應(yīng)用程序塊差不多,也是分為三步走:首先需要創(chuàng)建配置文件;在創(chuàng)建一個日志項對象,然后把它傳給Logger.Write()方法。下面我們看一下具體的操作步驟:(同樣我們認為您已經(jīng)有了一個創(chuàng)建好的項目,并已經(jīng)有了配置文件App.Config或Web.config)
1.運行配置工具后,選擇File | Open Application打開應(yīng)用程序的配置文件。
2.在Application上右擊并選擇New | Logging and Instrumentation Application Block。
3.日志和監(jiān)測應(yīng)用程序塊默認的Client Settings定義了in-process distribution strategy和LogginEnabled為True。
4.日志和檢測應(yīng)用程序塊默認的Distributor Settings定義了兩個Category(包括General和Trace)。我們看到在General下的Event Log Destination里面它的Sink為Event Log Sink,它的Formatter默認為Text Formatter。我們可以通過右擊Categorys選擇New | Category來新建一個Category。
]5.選擇File | Save All保存全部。
6.最后別忘了拷貝目錄。
"$(ProjectDir)\*.config" "$(TargetDir)"7.在項目中添加對應(yīng)用程序塊的引用。
Microsoft.Practices.EnterpriseLibrary.Logging.dll
8.在程序中引用
using Microsoft.Practices.EnterpriseLibrary.Logging;9.添加日志:
在這之前,為程序的規(guī)范性和嚴謹,我們先定義兩個枚舉:
/// <summary>2
/// 定義嚴重級別的枚舉3
/// </summary>4
public struct Priority5
{6
public const int Lowest = 0;7
public const int Low = 1;8
public const int Normal = 2;9
public const int High = 3;10
public const int Highest = 4;11
}12
13
/// <summary>14
/// 定義類別的枚舉15
/// </summary>16
public struct Category17
{18
public const string General = "General";19
public const string Trace = "Trace";20
}添加日志,添加日志的工作全部都由Write方法來完成。
///創(chuàng)建一個日志項2
LogEntry log = new LogEntry();3
4
log.Message = this.txt_LogMessage.Text;5
log.Category = Category.General;6
log.Priority = Priority.Normal;7
8
///寫入日志9
Logger.Write(log);10.打開事件查看器,我們可以看到,在里面寫入了一條日志信息:
11.雙擊日志信息,可以查看詳細的內(nèi)容:
至此,一個完整的日志記錄我們就做完了。入門篇就到這里,另外,大家可以看一下:
http://terrylee.cnblogs.com/archive/2005/11/02/267063.html
在進階篇里我會講創(chuàng)建包含名-值對的字典,過濾事件,定制日志消息的格式,配置同步和異步等內(nèi)容。
Worktile,新一代簡單好用、體驗極致的團隊協(xié)同、項目管理工具,讓你和你的團隊隨時隨地一起工作。完全免費,現(xiàn)在就去了解一下吧。
https://worktile.com



浙公網(wǎng)安備 33010602011771號