首先用NuGet安装NLog依赖DLL
NLog
NLog.Config
NLog.Schema
NLog配置文件NLog.config:
<?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="d:\nlog\nlog-internal.log"> <!-- optional, add some variables https://github.com/nlog/NLog/wiki/Configuration-file#variables --> <!--<variable name="myvar" value="myvalue"/>--> <variable name="logDir" value="${basedir}/nlog"/> <variable name="logFileName" value="${date:format=yyyyMMdd}.txt"/> <variable name="logArchiveFileName" value="${date:format=yyyyMMdd}_{#}.txt"/> <variable name="logLayout" value="${date:format=yyyy-MM-dd HH\:mm\:ss.fff} [${level}] ${message}"/> <!-- See https://github.com/nlog/nlog/wiki/Configuration-file for information on customizing logging rules and outputs. --> <targets> <!-- add your targets here See https://github.com/nlog/NLog/wiki/Targets for possible targets. See https://github.com/nlog/NLog/wiki/Layout-Renderers for the possible layout renderers. --> <!-- Write events to a file with the date in the filename. <target xsi:type="File" name="f" fileName="${basedir}/logs/${shortdate}.log" layout="${longdate} ${uppercase:${level}} ${message}" /> --> <target xsi:type="File" name="info" layout="${logLayout}" fileName="${logDir}/info/${logFileName}" archiveFileName="${logDir}/info/${logArchiveFileName}" archiveAboveSize="10485760" archiveNumbering="Sequence" maxArchiveFiles="100" concurrentWrites="true" keepFileOpen="true" openFileCacheTimeout="30" encoding="UTF-8" /> <target xsi:type="File" name="debug" layout="${logLayout}" fileName="${logDir}/debug/${logFileName}" archiveFileName="${logDir}/debug/${logArchiveFileName}" archiveAboveSize="10485760" archiveNumbering="Sequence" maxArchiveFiles="100" concurrentWrites="true" keepFileOpen="true" openFileCacheTimeout="30" encoding="UTF-8" /> <target xsi:type="File" name="error" layout="${logLayout}" fileName="${logDir}/error/${logFileName}" archiveFileName="${logDir}/error/${logArchiveFileName}" archiveAboveSize="10485760" archiveNumbering="Sequence" maxArchiveFiles="100" concurrentWrites="true" keepFileOpen="true" openFileCacheTimeout="30" encoding="UTF-8" /> </targets> <rules> <!-- add your logging rules here --> <!-- Write all events with minimal level of Debug (So Debug, Info, Warn, Error and Fatal, but not Trace) to "f" <logger name="*" minlevel="Debug" writeTo="f" /> --> <logger name="*" minlevel="Info" maxlevel="Info" writeTo="info" /> <logger name="*" minlevel="Debug" maxlevel="Debug" writeTo="debug" /> <logger name="*" minlevel="Error" maxlevel="Error" writeTo="error" /> </rules> </nlog>