NLog快速入门教程【.Net Framework版】

介绍

  NLog是一款用于.Net开源免费的日志记录平台,功能强大。本教程旨在让萌新能够快速入门,具体信息请查看https://github.com/NLog/NLog。

安装

  1. 方式一:使用NuGet搜索并安装NLog.Config
  2. 方式二:使用程序包管理器控制台:Install-Package NLog.Config
    安装完成后,可以发现NLogNLog.Schema两个包也被安装好了。

配置

  1. 方式一:使用XML配置NLog.config文件

<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">
   
   <targets>  
       <target name="file" xsi:type="AsyncWrapper">
	   <target xsi:type="File" fileName="${basedir}/logs/${shortdate}.log" layout="${longdate} ${level:uppercase=true} ${event-properties:item=Action} ${message} ${exception:stacktrace}" />         
       target>
   targets>
   <rules>
       <logger name="*" minlevel="Debug" writeTo="file" />
   rules>
nlog>

确保该文件的属性为如果较新则复制始终复制。以下为部分参数介绍

  • targets
    • name:名字,唯一性标识,如果多个target有相同的名字,那么只有最后一个生效。
    • xsi:type:类型,“xsi”对应于该文件开头定义的xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance",表示XML命名空间
      • AsyncWrapper:以异步缓冲的方式写入
    • fileName:日志文件的全路径
      • basedir:主程序所在根目录
      • shortdate:“yyyy-MM-dd”格式的字符串
    • layout:日志内容排版,可以理解为模版。
      • longdate:“yyyy-MM-dd HH:mm:ss.ffff”格式的字符串
      • level:日志等级,包括Trace、Debug、Info、Warn、Error、Fatal等
        • uppercase:设置Level的大小写
      • event-properties:日志事件属性
        • item:属性名
      • message:自定义的信息
      • exception:要记录的异常
        • stacktrace:记录异常中的StackTrace信息
  • rules
    • name:记录器名字,这里使用了通配符“*”,下面会用到
    • minlevel:日志记录的最小等级(Trace
    • writeTo :要使用的Targets名称,多个名称之间用“,”分隔
  1. 方式二:使用代码进行配置(暂未发现明显优势,不在此进行赘述)

使用

运行下方程序后就可以查看日志了。

using NLog;
class Program
{
    //该处创建了一个名为 {你的命名空间}.Program 的 Logger,
    //如果 NLog.config 中有同名的 Logger,则使用其配置,
    //否则使用 Name 为“*”的 Logger 配置
    //如果没有 Name 为“*”的 Logger,则使用记录可用性全为 False 的默认记录器
    private static readonly Logger _logger = NLog.LogManager.GetCurrentClassLogger();
    static void Main(string[] args)
    {     
        //请注意查看以下方法的重载

        //由于配置了最小记录等级为Debug,所以Trace不被记录
        _logger.Trace("Trace test");
        _logger.Debug("Debug test");
        _logger.Info("Info test");
        _logger.Warn("Warn test");
        _logger.Error("Error test");
        _logger.Fatal("Fatal test");
    }
}

总结

  未来有时间会将日志的数据库写入等方式进行补充。
  NLog的基本用法差不多就是这些了,不过想要达到应用级别,还需要自己去深入学习下去。

你可能感兴趣的:(Net)