Bootstrap

NLog简单使用方法

                                        NLog简单使用方法

一、NLog的安装

1、方法一

右键项目名称,单击NuGet程序包。分别搜索NLog和NLog.Config,并安装。也可以把NLog.Config独立出来,此时无需安装NLog.Config。

2、方法二

使用控制台安装。PM > Install-Package Nlog 。。。。。。

二、NLog的配置

针对NLog.Config做相应的配置,包括输出目标target和路由规则rule。

具体参数说明:

路由规则主要用于将日志和输出目标匹配起来,它一般有如下几个属性

  • name - 日志源/记录者的名字 (允许使用通配符*)
  • minlevel - 匹配日志范围的最低级别
  • maxlevel - 匹配日志范围的最高级别
  • level - 匹配的单一日志级别
  • levels - 匹配的一系列日志级别,由逗号分隔。
  • writeTo - 规则匹配时日志应该被写入的一系列目标<target>节点的name属性,由逗号分隔。
  • final - 标记当前规则为最后一个规则。其后的规则即时匹配也不会被运行。

NLog支持如下几种记录等级:

  1. Trace- 最常见的记录信息,一般用于普通输出
  2. Debug- 同样是记录信息,不过出现的频率要比Trace少一些,一般用来调试程序
  3. Info- 信息类型的消息
  4. Warn- 警告信息,一般用于比较重要的场合
  5. Error- 错误信息
  6. Fatal- 致命异常信息。一般来讲,发生致命异常之后程序将无法继续执行。

优先级:Trace>Debug>Info>Warn>Error>Fatal

1、输出目标target

<targets>
    <!--屏幕打印消息-->
    <target name="console" 
            xsi:type="ColoredConsole" 
            layout="${longdate}> ${message}"/>
    
    <!--VS输出窗口--> 
    <target name="debugger" 
            xsi:type="Debugger"
            layout="${date:format=HH\:mm\:ss} | ${level:padding=-5} | ${message}"/>
    
    <!--保存至文件-->
    <target name="file_log" 
            xsi:type="File" 
            maxArchiveFiles="30"
            fileName="${basedir}/Logs/log_${shortdate}.txt"
            layout="${longdate} | ${level:uppercase=false:padding=-5} | ${message} ${onexception:${exception:format=tostring} ${newline} ${stacktrace} ${newline}" />
    <!--保存至数据库 暂无-->
  </targets>

 2、路由规则rule

<rules>
    <logger name="*" writeTo="console" />
    <logger name="*" minlevel="Debug" writeTo="debugger"/>
    <logger name="*" minlevel="Trace" writeTo="file_log" />
  </rules>

三、NLog的使用

class Program
    {
        
        static void Main(string[] args)
        {
            Logger logger = LogManager.GetCurrentClassLogger();

            logger.Info("This is Info Message!");
            logger.Debug("This is Debug Message!");
            logger.Warn("This is Warn Message!");
            logger.Error("This is Error Message!");
            logger.Trace("This is Trace Message!");
            logger.Fatal("This is Fatal Message!");

            Console.ReadKey();
        }
    }

1、输出到控制台

2、输出到DEBUG

3、输出到文件

 

 

;