標籤:style blog http 使用 os io strong 檔案
原文參考 http://msdn.microsoft.com/en-us/library/dn440731(v=pandp.60).aspx
一、簡介
日誌通常滿足兩個主要的要求:1、監控應用程式效能並提供資訊。效能方面,日誌可以監控程式內部發生了什麼,有時也監控程式外部發生了什麼。2、更重要的是用於審計。這種日誌可以跟蹤使用者的行為並且記錄使用者執行的一系列任務、讀取和修改的資訊、訪問的資源。
日誌模組是一個高靈活和可配置的解決方案,它允許以靈活多樣的方式建立和儲存日誌資訊於各種位置、分類並過濾資訊、收集調試過程中的上下文資訊、審計跟蹤並記錄。
二、日誌模組能做什嗎?
日誌模組可以使日誌功能和應用程式代碼分離。它可以把日誌條目發送到Windows 事件記錄、資料庫、文字檔,也可以產生包含日誌資訊的郵件、windows訊息佇列等。也可以自訂發送目的。
應用程式中,僅需簡單地用合適的對象(如Logwriter)產生一個日誌條目,然後調用其方法把日誌條目寫入相應的目標位置。
圖1-An overview of the logging process and the objects in the Logging block
三、日誌的代價和額外的上下文資訊
無論怎樣實現日誌,它總會有一些效能影響。日誌模組提供了靈活的、高度可配置的日誌解決方案,並且經過精心設計來最小化效能影響。但是,你仍然需要知道這個影響,並且要考慮你的日誌方案會如何影響它,需要在需求之間平衡。
LogWriter自動收集一些像時間、應用程式、機器名字、進程ID等上下文資訊。為了最小化效能影響,LogWriter類緩衝了這些值並且採用了延遲最小化——即只有當被一個Listener實際使用時才去建立。
然而,收集額外的上下文資訊的代價是非常高的並且浪費寶貴的資源,這可能會影響效能。因此,在建立LogEntry時,只有指定需要某些不常用的資訊時,日誌模組才去收集。日誌模組中的四個類可以收集指定的上下文資訊,包括COM+、當前堆棧、運行時安全相關以及系統安全相關。LogEntry還有一個字典屬性允許程式員添加資訊。
四、怎樣使用Logging Block?
其中的關鍵是建立日誌條目,然後調用方法把這個日誌條目寫入目標。
1、添加LoggingBlock的引用到項目中
需要添加的引用有Microsoft.Practices.EnterpriseLibrary. Logging.dll,如果日誌 Microsoft.Practices.EnterpriseLibrary. Logging.Database.dll並添加需要的引用: