NLog的介紹使用

2021-09-21 13:06:01 字數 4414 閱讀 3594

nlog是什麼

nlog是乙個基於.net平台編寫的類庫,我們可以使用nlog在應用程式中新增極為完善的跟蹤除錯**。

nlog是乙個簡單靈活的.net日誌記錄類庫。通過使用nlog,我們可以在任何一種.net語言中輸出帶有上下文的(contextual information)除錯診斷資訊,根據喜好配置其表現樣式之後傳送到乙個或多個輸出目標(target)中。

nlog的api非常類似於log4net,且配置方式非常簡單。nlog使用路由表(routing table)進行配置,這樣就讓nlog的配置檔案非常容易閱讀,並便於今後維護。

nlog遵從bsd license,即允許商業應用且完全開放源**。任何人都可以免費使用並對其進行測試,然後通過郵件列表反饋問題以及建議。

nlog支援.net、c/c++以及com interop api,因此我們的程式、元件、包括用c++/com 編寫的遺留模組都可以通過同乙個路由引擎將資訊傳送至nlog中。

簡單來說nlog就是用來記錄專案日誌的元件

nlog日誌輸出目標

檔案 比如txt、excel

文字控制台

email

資料庫網路中的其它計算機(通過tcp或udp)

基於msmq的訊息佇列

windows系統日誌

nlog使用

直接用nuget安裝就行了

簡單的demo

<?xml version="1.0" encoding="utf-8" ?>

using nlog;

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

namespace _2017011301******demo}}

輸出到  ../../../logs/******demo.txt 內容為 hello world

nlog配置

<?xml version="1.0" encoding="utf-8" ?>

xmlns=「 這表示預設命名空間

xmlns:xsi="" 這個命名空間裡面的元素或者屬性就必須要以xsi:這種方式來寫

比如schemalocation就是他的乙個屬性,所以寫成xsi:schemalocation

而預設命名空間不帶類似xsi這種,其實xml標籤名稱有個專業叫法叫做qname,而如果沒有前面的xsi:這種一般叫做ncname

xsi:schemalocation=" nlog.xsd"

表示把定義這個命名空間的schema檔案給引用進來,好讓開發型別工具能夠解析和驗證你的xml檔案是否符合語法規範

等同於簡單來說 上面是用來驗證你xml格式是否正確的。

internallogfile="c:\log\nlog.txt" //nlog內部日誌檔案位置 

internalloglevel="debug" //日誌級別 

autoreload:一旦啟動程式,這時候nlog.config檔案被讀取後,知道程式再啟動都不會再讀取配置檔案了。假如我們不想停掉程式,比如說伺服器哪能說停就停哈。這就用上這個配置了,這個配置功能是,一旦你對配置檔案修改,程式將會重新讀取配置檔案,也就是自動再配置。

throwexceptions//nlog日誌系統丟擲異常

internallogfile="c:\log\nlog.txt" //nlog內部日誌檔案位置 

internalloglevel="debug" //日誌級別 

- 定義配置檔案中用到的變數

- 定義日誌的目標/輸出

- 定義日誌的路由規則

layout布局

幾種常見的

$ basepath是前面自定義的變數

$ 日期格式 2017-01-17 16:58:03.8667

$日期格式 2017-01-17 

$ 日期 20170117165803866

$ 輸出內容

$ guid

$日誌記錄的等級

$ 配置的logger

nlog記錄等級

trace - 最常見的記錄資訊,一般用於普通輸出

debug - 同樣是記錄資訊,不過出現的頻率要比trace少一些,一般用來除錯程式

info - 資訊型別的訊息

warn - 警告資訊,一般用於比較重要的場合

error - 錯誤資訊

fatal - 致命異常資訊。一般來講,發生致命異常之後程式將無法繼續執行。

自上而下,等級遞增。

nlog等級使用

指定特定等級 如:level="warn" 

指定多個等級 如:levels=「warn,debug「 以逗號隔開

指定等級範圍 如:minlevel="warn" maxlevel="error"

logger使用

從配置檔案讀取資訊並初始化 兩種常用的方式

根據配置的路由名獲生成特定的logger logger logger = logmanager.getlogger("loggerdemo");

初始化為當前命名空間下當前類的logger  logger logger = logmanager.getcurrentclasslogger();

區別是logger的name不一樣 前者是loggerdemo,後者是當前命名空間+點+當前類名 如模擬較多,並且往同乙個日誌檔案記錄,建議用getcurrentclasslogger

logger有以下三種常用的寫入方式

logger.error("這是databasedemo的錯誤資訊");

logger.error(「contentdemo :」,「時間」,datetime.now.tostring());需要拼接字串的話推薦這種,nlog做了延遲處理,用的時候才拼接。

logger.log(loglevel.error, "這是contentdemo");

logger發郵件引數

smtpserver=「*****」 郵件伺服器 例如126郵箱是smtp.126.com

smtpport=「25「埠

smtpauthentication=「basic「 身份驗證方式 基本

smtpusername=「*****「 郵件伺服器使用者名稱

smtppassword=「******」郵件伺服器密碼

enablessl=「false」是否使用安全連線 需要伺服器支援

addnewlines=「true」 開頭與結尾是否換行

from=「****」 發件郵箱

to=「***[email protected],***[email protected]」收件郵箱 多個以逗號分隔

subject=「subject:$報錯「 郵件主題

header=「---------------------開頭-------------------------「 郵件開頭

body=「$$$「 郵件內容

footer=「---------------------結尾-------------------------「 郵件結尾

<?xml version="1.0" encoding="utf-8" ?>

logger寫入資料庫引數資料庫連線字串 跟我們webcofig中的一樣引數

需在資料庫裡提前建好表

<?xml version="1.0" encoding="utf-8" ?>

nlog.config可以單獨放,也可以放在webconfig裡。

在configuration配置

然後把nlog.config裡面放在後面就行了。

附demo+ppt介紹:

NLog的介紹使用

nlog是什麼 nlog是乙個基於.net平台編寫的類庫,我們可以使用nlog在應用程式中新增極為完善的跟蹤除錯 nlog是乙個簡單靈活的.net日誌記錄類庫。通過使用nlog,我們可以在任何一種.net語言中輸出帶有上下文的 contextual information 除錯診斷資訊,根據喜好配置...

nlog官方幫助 NLog的介紹使用

nlog是什麼 nlog是乙個基於.net平台編寫的類庫,我們可以使用nlog在應用程式中新增極為完善的跟蹤除錯 nlog是乙個簡單靈活的.net日誌記錄類庫。通過使用nlog,我們可以在任何一種.net語言中輸出帶有上下文的 contextual information 除錯診斷資訊,根據喜好配置...

nlog官方幫助 NLog的介紹使用

centos系統下hadoop 2.4.1集群安裝配置 簡易版 hdu 3668 volume 數學,積分 題意 求圖中交叉圓柱體的體積 析 大體思路很明確,把兩個圓柱的體積加起來 減去中間公共部分的即可 第一步首先得想到公共部分是乙個怎樣的圖形.這個在高數下冊例題中有講到 中間實線部分就是第一卦限...