什么是Nlog


什么是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

直接用NuGet安裝就行了

 

 

 

 

 

 

 

 

NLog配置

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"
autoReload="true"
throwExceptions="false"
internalLogLevel="Off“
internalLogFile="c:\temp\nlog-internal.log">
<variable name="myvar" value="myvalue"/>
<targets> </targets>
<rules> </rules>
</nlog>

xmlns=“http://www.nlog-project.org/schemas/NLog.xsd” 這表示默認命名空間
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 這個命名空間里面的元素或者屬性就必須要以xsi:這種方式來寫
比如schemaLocation就是他的一個屬性,所以寫成xsi:schemaLocation
而默認命名空間不帶類似xsi這種,其實xml標簽名稱有個專業叫法叫做QName,而如果沒有前面的xsi:這種一般叫做NCName
xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd 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" //日志級別 

<variable /> - 定義配置文件中用到的變量
<targets /> - 定義日志的目標/輸出

NLog記錄等級

Trace - 最常見的記錄信息,一般用於普通輸出
Debug - 同樣是記錄信息,不過出現的頻率要比Trace少一些,一般用來調試程序
Info - 信息類型的消息
Warn - 警告信息,一般用於比較重要的場合
Error - 錯誤信息
Fatal - 致命異常信息。一般來講,發生致命異常之后程序將無法繼續執行。
自上而下,等級遞增。


<rules /> - 定義日志的路由規則

NLog等級使用

指定特定等級 如:level="Warn"
指定多個等級 如:levels=“Warn,Debug“ 以逗號隔開
指定等級范圍 如:minlevel="Warn" maxlevel="Error"

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM