您好,登錄后才能下訂單哦!
本人直接在Nuget中獲得Nlog日志類(lèi)庫(kù)支持,再次整下Nuget知識(shí)(需要在聯(lián)網(wǎng)的前景下進(jìn)行)
①:在項(xiàng)目上右擊-》管理NuGet程序包(如下圖所示)
②:出現(xiàn)管理器面板單擊左側(cè)“聯(lián)網(wǎng)”也簽 -》在右側(cè)的搜索欄中輸入“NLog”回車(chē)-》在中間選擇“NLog”欄目點(diǎn)擊安裝(如下圖所示)
等待下載(所以說(shuō)需要聯(lián)網(wǎng))
在這有個(gè)小插曲 , 因?yàn)槲业目刂婆_(tái)程序沒(méi)有配置文件(app.config),一般新建的控制臺(tái)程序都有的。不說(shuō)了 , 動(dòng)手添加,但是必須注意:只能添加一個(gè)配置文件(操作如下圖)
個(gè)人覺(jué)得比較難找 , 建議使用搜索
附上整個(gè)App.config的配置
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog"/> </configSections> <nlog autoReload="true" internalLogLevel="Trace" internalLogFile="logs/internalLog.txt"> <targets> <target name="T1" type="File" fileName="${basedir}/logs/${shortdate}.log" layout="${longdate} ${callsite} ${level}: ${message} ${event-context:item=exception} ${stacktrace} ${event-context:item=stacktrace}"/> <target name="T2" type="Console" layout="${date:format=yyyyMMddHHmmss} ${callsite} ${level} ${message}"/> </targets> <rules> <logger name="file" minlevel="Debug" maxlevel="Off" writeTo="T1"/> <logger name="console" minlevel="Trace" maxlevel="Off" writeTo="T2"/> </rules> </nlog> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> </startup> </configuration>
注解:
① , autoReload="true"表示在不重新啟動(dòng)應(yīng)用程序的情況下,修改配置文件,NLog會(huì)自動(dòng)加載應(yīng)用;
internalLogLevel="Trace"internalLogFile="logs/internalLog.txt"這個(gè)設(shè)置可以將NLog內(nèi)部的日志消息寫(xiě)到應(yīng)用程序目錄下的logs文件夾里的internalLog.txt文件中;(這個(gè)配置常用于調(diào)試Nlog的配置是否正確,調(diào)試完成后,最好關(guān)閉以提高性能)
<target>的配置:type="File|Console" 屬性是設(shè)置日志輸出目標(biāo)是"File"(文件)或者"Console"(控制臺(tái));
②,type="File"的時(shí)候要指定fileName屬性, fileName="${basedir}/logs/${shortdate}.log" 設(shè)置日記記錄文件的路徑和名稱(chēng),即應(yīng)用程序下的log目錄里格式為yyyy-MM-DD.log;
layout="${date:format=yyyyMMddHHmmss} ${callsite} ${level} ${message}" 設(shè)置日志輸出格式(可查閱官網(wǎng)說(shuō)明).
③,name="file"表示配置的規(guī)則適用于Logger名稱(chēng)為“file”,如果填*,則表示所有的Logger都運(yùn)用這個(gè)規(guī)則。
minlevel="Debug"maxlevel="Off"用來(lái)配置記錄的級(jí)別為最小是"Debug"最大為"Off"(備注:此處也可以用levels="Debug,Off"來(lái)設(shè)置,說(shuō)明只輸出Debug級(jí)別以及Off級(jí)別的日志,官網(wǎng)此處解說(shuō)有誤:)
writeTo="T1"其中T1,T2分別代表上面設(shè)置的targets名稱(chēng)為T(mén)1以及T2的目標(biāo)輸出,此處表示將分別將日志信息輸出到文件/控制臺(tái)。
有必要說(shuō)一下消息級(jí)別
解壓下載的壓縮包:http://nlog-project.org/ 請(qǐng)從官網(wǎng)下載
解壓后 在src/NLog中有個(gè)LogLevel.cs文件,里面有消息等級(jí)的相關(guān)信息(可以打開(kāi)看看,總共分6級(jí),從低到高)
好了,代碼測(cè)試:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using NLog; namespace MyNLog { public class Program { private static Logger @loggerFile = LogManager.GetLogger("file"); private static Logger @loggerConsole = LogManager.GetLogger("console"); static void Main(string[] args) { loggerFile.Debug("A File test Message = Debug"); loggerFile.Warn("A File test Message = Warn"); loggerFile.Trace("A File test Message = Trace"); loggerConsole.Debug("A Console test Message = Debug"); Console.Read(); } } }
解析:
① ,@loggerFile類(lèi)是往文件當(dāng)中寫(xiě)日志的
② ,@loggerConsole類(lèi)是往控制臺(tái)寫(xiě)消息的
至于日志在Debug/logs中
因?yàn)榕渲脝?wèn)題,參見(jiàn)App.config , 2017-03-09.log中沒(méi)有A File test Message = Trace
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。