zoukankan      html  css  js  c++  java
  • NLog使用说明

    NLog是一个基于.NET平台编写的类库,我们可以使用NLog在应用程序中添加极为完善的跟踪调试代码。

    NLog允许我们自定义从跟踪消息的来源(source)到记录跟踪信息的目标(target)规则(rules)。记录跟踪信息的目标(target)可以为如下几种形式:

    1. 文件
    2. 文本控制台
    3. Email
    4. 数据库
    5. 网络中的其它计算机(通过TCP或UDP)
    6. 基于MSMQ的消息队列
    7. 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:	emp
    log-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();
            }

    效果展示:

  • 相关阅读:
    linux源码方式安装Apache
    linux的chmod,chown命令详解
    2011年10月18日
    mysql检查查询及索引效率方法(explain)
    php中英文字符串的研究
    2011年10月20日
    PHP JSON中文乱码解决方法大全
    解决PHP下载文件名中文乱码
    php字符串学习笔记
    CSU_BMW正式组队纪念赛出题+部分解题报告
  • 原文地址:https://www.cnblogs.com/siaslfslovewp/p/6128046.html
Copyright © 2011-2022 走看看