Nlog日誌元件簡介

2021-10-02 07:57:39 字數 4087 閱讀 2644

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...