NLog允許我們自定義從跟蹤訊息的 來源(source)到記錄跟蹤信息的 目標(target)的 規則(rules)。記錄跟蹤信息的目標(target)可以為如下幾種形式:
檔案
文本控制台
資料庫
網路中的其它計算機(通過TCP或UDP)
基於MSMQ的訊息佇列
Windows系統日誌
1.檔案
2.文本控制台
3.資料庫
5.網路中的其它計算機(通過TCP或UDP)
6.基於MSMQ的訊息佇列
7.Windows系統日誌
除此之外,每一條跟蹤訊息都可以自動帶有 上下文信息(contextual information),並將其傳送給記錄跟蹤信息的目標。這些上下文信息可以包含如下內容:
當前的日期和時間(多種格式)
記錄等級
來源名稱
輸出跟蹤訊息的方法的堆疊信息
環境變數的值
異常的詳細信息
計算機、進程和執行緒名稱
1.當前的日期和時間(多種格式)
2.記錄等級
3.來源名稱
4.輸出跟蹤訊息的方法的堆疊信息
5.環境變數的值
6.異常的詳細信息
7.計算機、進程和執行緒名稱
每條跟蹤信息都包含一個記錄等級(log level)信息,用來描述該條信息的重要性。NLog支持如下幾種記錄等級:
Trace- 最常見的記錄信息,一般用於普通輸出
Debug- 同樣是記錄信息,不過出現的頻率要比Trace少一些,一般用來調試程式
Info- 信息類型的訊息
Warn- 警告信息,一般用於比較重要的場合
Error- 錯誤信息
Fatal- 致命異常信息。一般來講,發生致命異常之後程式將無法繼續執行。
1.Trace
2.Debug
3.Info
4.Warn
5.Error
6.Fatal
NLog的.NET API的過濾信息功能執行效率很高,這樣我們就可以一直保留程式中的日誌寫入代碼,然後由NLog在運行時將其根據需要過濾掉。在一個1.6G單CPU筆記本電腦上,NLog每秒鐘可以過濾掉1.5億條日誌寫入語句!加上 異步處理(asynchronous processing)以及其他 包裝程式(wrappers)的支持,NLog將成為一個極為強大的、且極具伸縮性的日誌記錄工具,