NLog使用说明
Posted 世界之大,程序一家
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NLog使用说明相关的知识,希望对你有一定的参考价值。
NLog是一个基于.NET平台编写的类库,我们可以使用NLog在应用程序中添加极为完善的跟踪调试代码。
NLog允许我们自定义从跟踪消息的来源(source)到记录跟踪信息的目标(target)的规则(rules)。记录跟踪信息的目标(target)可以为如下几种形式:
- 文件
- 文本控制台
- 数据库
- 网络中的其它计算机(通过TCP或UDP)
- 基于MSMQ的消息队列
- Windows系统日志
第一步:安装NLog,通过Nuget程序控制器,下载并安装NLog。
注意:搜索NLog时,会出现两个。先安装NLog,然后安装NLog Configuration。然后会自动添加几个文件。如下图:
第二步:配置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="c:\\temp\\nlog-internal.log"> <variable name="myvar" value="myvalue"/> <!-- BUG等级设置:Trace<<Debug<<Info<<Warn<<Error<<Fatal --> <!-- 设置时间代码:${date:format=yyyy-MM-dd HH\\:mm\\:ss} --> <targets> <target xsi:type="Console" name="console" layout="[${date:format=yyyy-MM-dd HH\\:mm\\:ss}][${level}] ${message} ${exception}"/> <target xsi:type="File" fileName="${date:format=yyyy-MM-dd}.txt" name="logfile"/> </targets> <!-- 注意:minlevel:日志的最小等级;writeTo:指向对应的target;final:同等级下的规则,该规则是否是唯一的;--> <rules> <logger name="*" minlevel="Trace" writeTo="console" final="true"></logger> <logger name="*" minlevel="Trace" writeTo="logfile"></logger> </rules> </nlog>
配置信息拓展:
Logger标签对,控制输出范围与水平
name属性:
指定哪些代码段要输出信息,例如:“<logger name="SomeNamespace.Component.*" …”,只输出SomeNamespace.Component域里面打印的信息。
minLevel属性:
指定输出等级,Logging 水平分为以下等级“Trace<<Debug<<Info<<Warn<<Error<<Fatal ”,如果我们选择Info值,则Trace和Debug等级的信息不会被输出。
writeTo属性:
指定使用那个“Target标签对”来输出信息
Final属性:
这个属性若设置为true,则被当前Logger标签对输出的消息类型,不再被下一个Logger标签对处理。
Target标签对,输出格式,输出到哪里
Name属性:
target标签对的名称
Type属性:
target的类型,比如target=”File”。还有“Database”,“Mail”,“Network”等类型。
Silverlight使用文件输出,需将项目设置为Out of browser模式
fileName属性:
若target类型为File,则可以指定输出文件名。
例:
fileName=”file.txt”,
fileName="${basedir}/App_Data/log.txt",
fileName="${basedir}/log.txt",
fileName ="${specialfolder:MyDocuments}/log.${shortdate}.txt"
fileName="${logger}.txt"
fileName="${shortdate}.txt"
fileName="${windows-identity:domain=false}.txt
fileName="${shortdate}/${windows-identity:domain=false}.txt"
如果是Silverlight项目可能不能指定输出文件到App_Data目录下。
Layout属性:
格式化输出日志信息。例:
layout="${date:format=HH\\:mm\\:ss}|${level}|${stacktrace}|${message}"
layout="[${date:format=yyyy-MM-ddHH\\:mm\\:ss}][${level}] ${message} ${exception}"
layout="${longdate}${callsite} ${level} ${message}"
address属性:
指定日志信息输出到哪个网络服务器,例:
<targetname="n1" xsi:type="Network"address="tcp://localhost:4001"/>
第三步:代码使用。
private static Logger logger = LogManager.GetCurrentClassLogger(); public static void Main(string[] args) { logger.Error("test1"); logger.Trace("写入到文件"); Console.ReadKey(); }
效果展示:
以上是关于NLog使用说明的主要内容,如果未能解决你的问题,请参考以下文章
NLog GetCurrentClassLogger()抛出TypeInitializationException