共计 2202 个字符,预计需要花费 6 分钟才能阅读完成。
NLog 是实用于各种.NET 平台(包含.NET 规范)的灵便,收费的日志记录平台,NLog 可将日志写入多个指标,比方 Database、File、Console、Mail。上面介绍下 NLog 的根本应用办法。
应用步骤
增加援用
装置 NLog Nuget package:Install-Package NLog.Config
;
增加配置文件
- 在我的项目中增加一个配置文件(也能够间接将 NLog 的配置我的项目放入 *.exe.config 中),重命名为 NLog.config;
-
更改如下两项属性内容:
- 复制到输入目录 – 如果较新则复制
- 生成操作 – 内容
- 增加配置内容,上面展现的是 GitHub 上的示例配置:
<?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"> | |
<!-- 配置输入指标 --> | |
<targets> | |
<!-- 输入到文件 --> | |
<target name="logfile" xsi:type="File" fileName="file.txt" /> | |
<!-- 输入到控制台 --> | |
<target name="logconsole" xsi:type="Console" /> | |
</targets> | |
<!-- 定义输入规定,可配置多个 --> | |
<rules> | |
<logger name="*" minlevel="Info" writeTo="logconsole" /> | |
<logger name="*" minlevel="Debug" writeTo="logfile" /> | |
</rules> | |
</nlog> |
- 创立 Logger 类,获取 NLog.Logger 实例:
public class Log | |
{ | |
// ... | |
private static readonly NLog.Logger Logger = | |
NLog.LogManager.GetCurrentClassLogger();} |
配置示例
如下配置为自己罕用配置,可参考该配置及 GitHub 领导文档自定义配置:
留神:首次应用 NLog 时,可先将 throwExceptions
置为 true,这样如果配置有问题没有胜利打印日志,VS 会抛出异样,不便定位起因。调试好后,再将该项置为 false。
另外:示例中 fileName(日志文件全门路名称)是通过后盾代码配置的,这样能够动静设置日志的输入地位。
// 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" | |
throwExceptions="false" autoReload="true" async="true" encoding="UTF-8"> | |
<targets> | |
<target name="logconsole" xsi:type="Console" | |
layout="${date:format=HH\:mm\:ss} | ${level:padding=-5} | ${message}"/> | |
<target name="logfile" xsi:type="File" createDirs="true" keepFileOpen="true" | |
fileName="${gdc:logDirectory:whenEmpty=${baseDir}}/logs/${shortdate}/Whiteboard.log" | |
archiveFileName="${gdc:logDirectory:whenEmpty=${baseDir}/logs/${shortdate}}/Whiteboard_{##}.log" | |
archiveAboveSize="102400" archiveNumbering="Sequence" maxArchiveDays="30" | |
layout="${longdate} | ${level:uppercase=false:padding=-5} | ${message} ${onexception:${exception:format=tostring} ${newline} ${stacktrace} ${newline}"/> | |
</targets> | |
<rules> | |
<logger name="*" minlevel="Debug" writeTo="logconsole"/> | |
<logger name="*" minlevel="Debug" writeTo="logfile" /> | |
</rules> | |
</nlog> | |
// Log.cs 设置日志文件输入地位 | |
string logDir = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), | |
Process.GetCurrentProcess().ProcessName); | |
NLog.GlobalDiagnosticsContext.Set("logDirectory", logDir); |
正文完