Nlog日誌之File
阿新 • • 發佈:2017-07-20
line pen 寫入 enc inf ole uget rule col
一:簡介
NLog是一個簡單靈活的.NET日誌記錄類庫。通過使用NLog,我們可以在任何一種.NET語言中輸出帶有上下文的(contextual information)調試診斷信息,根據喜好配置其表現樣式之後發送到一個或多個輸出目標(target)中。
詳細配置文章請參考:http://www.cnblogs.com/RitchieChen/archive/2012/07/16/2594308.html
二:應用
直接在NuGet中下載Nlog包即可,需要在項目的根目錄下創建NLog.config配置文件,當前文章只記錄文件方式寫入日誌,配置文件如下:
<?xml version="1.0" ?> <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <targets> <target name="file" xsi:type="File" layout="${longdate} ${logger} ${message}" fileName="${basedir}/logs/${level}.txt" //level是已文件級別作為日誌名,shortdate是以時間作為日誌名
keepFileOpen="false" /> </targets> <rules> <logger name="*" minlevel="Debug" writeTo="file" /> </rules> </nlog>
異步寫入文件
<?xml version="1.0" ?> <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <targets> <target name="file" xsi:type="AsyncWrapper" queueLimit="5000" overflowAction="Discard"> <target name="file" xsi:type="File" layout="${longdate} ${logger} ${message}" fileName="${basedir}/logs/${level}.txt" keepFileOpen="false" /> </target> </targets> <rules> <logger name="*" minlevel="Debug" writeTo="file" /> </rules> </nlog>
配置語法
<targets> <target xsi:type="File" name="String" layout="Layout" header="Layout" footer="Layout" encoding="Encoding" lineEnding="Enum" archiveAboveSize="Long" maxArchiveFiles="Integer" archiveFileName="Layout" archiveNumbering="Enum" archiveEvery="Enum" replaceFileContentsOnEachWrite="Boolean" fileAttributes="Enum" fileName="Layout" deleteOldFileOnStartup="Boolean" enableFileDelete="Boolean" createDirs="Boolean" concurrentWrites="Boolean" openFileCacheTimeout="Integer" openFileCacheSize="Integer" networkWrites="Boolean" concurrentWriteAttemptDelay="Integer" concurrentWriteAttempts="Integer" bufferSize="Integer" autoFlush="Boolean" keepFileOpen="Boolean" /> </targets>
控制臺
class Program { static void Main(string[] args) { NLog.Logger log = NLog.LogManager.GetCurrentClassLogger(); log.Debug("記錄一個錯誤日誌"); Console.WriteLine("執行完畢"); Console.ReadKey(); } }
Nlog日誌之File