NLog是一個基於.NET平台編寫的類庫,我們可以使用NLog在應用程式中添加極為完善的跟蹤調試代碼。
NLog是一個簡單靈活的.NET日誌記錄類庫。通過使用NLog,我們可以在任何一種.NET語言中輸出帶有上下文的(contextual information)調試診斷信息,根據喜好配置其表現樣式之後傳送到一個或多個輸出目標(target)中。
NLog的API非常類似於log4net,且配置方式非常簡單。NLog使用路由表(routing table)進行配置,但log4net卻使用層次性的appender配置,這樣就讓NLog的配置檔案非常容易閱讀,並便於今後維護。
NLog遵從BSD license,即允許商業套用且完全開放原始碼。任何人都可以免費使用並對其進行測試,然後通過郵件列表反饋問題以及建議。
NLog支持.NET、C/C++以及COM interop API,因此我們的程式、組件、包括用C++/COM 編寫的遺留模組都可以通過同一個路由引擎將信息傳送至NLog中。
基本介紹
- 中文名:.NET日誌記錄類庫
- 外文名:NLog
NLog允許我們自定義從跟蹤訊息的來源(source)到記錄跟蹤信息的目標(target)的規則(rules)。記錄跟蹤信息的目標(target)可以為如下幾種形式:
- 檔案
- 文本控制台
- Email
- 資料庫
- 網路中的其它計算機(通過TCP或UDP)
- 基於MSMQ的訊息佇列
- Windows系統日誌
除此之外,每一條跟蹤訊息都可以自動帶有上下文信息(contextual information),並將其傳送給記錄跟蹤信息的目標。這些上下文信息可以包含如下內容:
- 當前的日期和時間(多種格式)
- 記錄等級
- 來源名稱
- 輸出跟蹤訊息的方法的堆疊信息
- 環境變數的值
- 異常的詳細信息
- 計算機、進程和執行緒名稱
每條跟蹤信息都包含一個記錄等級(log level)信息,用來描述該條信息的重要性。NLog支持如下幾種記錄等級:
- Trace- 最常見的記錄信息,一般用於普通輸出
- Debug- 同樣是記錄信息,不過出現的頻率要比Trace少一些,一般用來調試程式
- Info- 信息類型的訊息
- Warn- 警告信息,一般用於比較重要的場合
- Error- 錯誤信息
- Fatal- 致命異常信息。一般來講,發生致命異常之後程式將無法繼續執行。
NLog的.NET API的過濾信息功能執行效率很高,這樣我們就可以一直保留程式中的日誌寫入代碼,然後由NLog在運行時將其根據需要過濾掉。在一個1.6G單CPU筆記本電腦上,NLog每秒鐘可以過濾掉1.5億條日誌寫入語句!加上異步處理(asynchronous processing)以及其他包裝程式(wrappers)的支持,NLog將成為一個極為強大的、且極具伸縮性的日誌記錄工具,