nlog是乙個簡單靈活的.net日誌記錄類庫,nlog的api非常類似於log4net,配置方式非常簡單。支援多種形式輸出日誌:文字檔案、系統日誌、資料庫、控制台、郵箱等
在nuget控制台輸入安裝nlog命令: install-package nlog.config
nlog配置的方式常用的有兩種
2.nlog.config 這個是比較好的乙個形式(推薦)
配置檔案中的主要標籤是:targets和rules:
- 定義日誌的目標/輸出,下級是
- 定義日誌的路由規則,下級是
標籤
autoreload 修改配置檔案後是否允許自動載入無須重啟程式
throwexceptions 內部日誌系統丟擲異常(建議throwexceptions的值設為「false」,這樣由於日誌引發的問題不至於導致應用程式的崩潰。)
internalloglevel 可選trace|debug|info|warn|error|fatal決定內部日誌的級別 off 關閉
internallogfile 把內部的除錯和異常資訊都寫入指定檔案裡
標籤定義了日誌的輸出,可以設定檔名稱和格式,輸出方式。
name 自定義該target的名字,可供rule規則裡使用
type 定義型別,官方提供了很多可選型別,常用的還是 file \database \colored console\ mail
layouts 用來規定布局樣式,語法「$」,可以把上下文資訊插入到日誌中,官方提供的可以用的屬性見文末附錄
標籤定義日誌的記錄規則,記錄範圍
name 記錄者的名字
minlevel 最低級別
maxlevel 最高端別
level 單一日誌級別
levels 一系列日誌級別,由逗號分隔。
標籤
變數定義
把日誌記錄到彩色控制台,log文字檔案和mysql資料庫。首先新增nlog.config檔案如下,放在控制台專案的bin/debug目錄下
<?xml version="1.0" encoding="utf-8" ?>
loghelper是通過拓展string實現的乙個簡單的helper,呼叫**如下:
class program
}public static class loghelper
/// /// 除錯
///
///
public static void debug(this string debug)
/// /// 資訊
///
///
public static void info(this string info)
/// /// 警告
///
///
public static void warn(this string warn)
/// /// 錯誤
///
///
public static void error(this string error)
/// /// 嚴重錯誤
///
///
public static void fatal(this string fatal)
/// /// 跟蹤
///
///
public static void trace(this string trace)
}
記錄效果如下:控制台中使用彩色高亮展示日誌資訊
mysql中效果如下
log檔案效果如下
過濾器**如下
/// /// 異常處理過濾器
///
public class errorhandleattribute : exceptionfilterattribute
, stringsplitoptions.none).where(s => !string.isnullorwhitespace(s)).first().trim();
//string stack
//記錄的message
string message = $"----1.[客戶端ip]: " + environment.newline + $"----2.[請求方法]: " + environment.newline + $"----3.[請求url]:" + environment.newline + $"----4.[異常資訊]: " + environment.newline + $"----5.[異常定位]:";
//log4net記錄
loghelper.writeerrorlog("", message);
//nlog記錄
}/// /// 獲取客戶端ip位址(無視**)
///
/// 若失敗則返回回送位址
public static string gethostaddress()
}//最後判斷獲取是否成功,並檢查ip位址的格式(檢查其格式非常重要)
if (!string.isnullorempty(userhostaddress) && isip(userhostaddress))
return "127.0.0.1";
}/// /// 檢查ip位址格式
///
///
///
public static bool isip(string ip)
(2[0-4]\d|25[0-5]|[01]?\d\d?)$");}}
當前應用程式域
$應用程式
$應用程式域的基本目錄。
$(類名稱、方法名稱和相關資訊的源資訊)。$數值
$當前日期和時間。
$環境變數
$exception資訊
$guid
$執行緒標識資訊
$級別。
$xml事件描述
$記錄器的名字
$日期和時間的格式分類yyyy-mm-dd hh:mm:ss.ffff。$名稱
$訊息$文字換行
$當前程序識別符號
$執行資訊
$當前程序的名稱。
$該時間過程中格式hh:mm:ss.mmm。
$短時間 格式yyyy-mm-dd。
$當前執行緒的識別符號。
$當前執行緒。
$當前日期和時間。
$24小時格式hh:mm:ss.mmm。
$-提供新的變數(4.1)
補充:下邊是乙個分級別記錄的nlog.config,這個配置檔案和上邊的loghelper可以一起使用。
<?xml version="1.0" encoding="utf-8" ?>
C 日誌框架NLog
nutgue中搜尋 nlog 進行安裝,它會提示你根據你.net版本選擇相應的版本 安裝後會自動在專案目錄項建立nlog.config檔案,這是人家的配置檔案,照搬 封裝乙個工具類以操控nlog,如果後續專案使用其他的日誌框架,直接改此工具類就好了 using system using system...
nlog官方幫助 使用Nlog記錄文字日誌
1.安裝nlog 在vs的nuget包管理器中直接搜nlog,然後安裝nlog 用於系統引用nlog.dll 和nlog.config 用於系統自動生成nlog.config檔案 至於圖中第三個包,不知道啥時候自己加進去了 引用nlog的huget包管理器.png 2.配置nlog.config 非...
NLog輸出日誌到RichTextBox
新建乙個windows窗體應用程式後 在專案中引用nlog和nlog.windows.forms 在form介面新增richtextbox用以日誌輸出。新建nlog.config檔案。內容如下。該配置支援輸出到檔案和richtextbox。nlog.config需要配置複製到輸出目錄。xmlns x...