zoukankan      html  css  js  c++  java
  • Nlog的简单使用

    Nlog是.net平台下的开源日志组件,相当于log4net用法配置更简单。
    用途可以将日志输出到数据库,文本文件,控制台等。
    首先引用NLog.dll,顺便也将NLog.xml丢到运行目录
    准备工作完后,接下来的工作就非常快
    添加NLog.config将设置为始终复制到运行目录下,具体配置如下

     1 <?xml version="1.0" encoding="utf-8" ?>
     2 <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
     3       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     4   <!-- 定义参数:
     5     ${basedir}:系统路径
     6     ${shortdate}:短日期 yyyy-MM-dd(例:2013-01-31)
     7     ${basedir}/Logs/${shortdate}:即为在系统路径下的Logs文件夹下面的日期文件夹-->
     8   <variable name="logDirectory" value="${basedir}/Logs/${shortdate}"/>
     9   <targets>
    10     <!-- 定义输出模板:
    11         type="File":这个记录方式为文件类型
    12         fileName="${logDirectory}/All.log":表示输出到文件All.log中
    13         layout="...":输出文件中错误的显示格式
    14         ${logDirectory}:为上述定义的路径
    15         ${longdate}:输出长日期 yyyy-MM-dd HH:mm:ss.ffff(例:2013-01-31 14:49:21.2120)
    16         ${level}:错误等级(由低到高为Trace,Debug,Info,Warn,Error,Fatal)
    17         ${newline}:输出 新的一行
    18         ${stacktrace}:输出 堆栈信息
    19         ${callsite:className=True:fileName=True:includeSourcePath=True:methodName=True}:输出 命名空间.类名.方法名(文件路径:行号)
    20         ${message}:输出错误信息-->
    21     <target xsi:type="File" name="AllFile" fileName="${logDirectory}/All.log"
    22             layout="${longdate}        ■${level}${newline}    ▲${stacktrace}${newline}    ◇${callsite:className=True:fileName=True:includeSourcePath=True:methodName=True}${newline}    ◆${message}${newline}${newline}***************************************************************************" >
    23     </target>
    24     <!-- 定义输出到MySQL中:
    25         type="Database":这个记录方式是数据库
    26         dbProvider="MySql.Data.MySqlClient":使用MySQL的连接方式
    27         connectionString="Server=XXX.XXX.XXX.XXX;Database=ProjectLogDB;Uid=XXX;Pwd=XXX;":数据库的连接字符串
    28         commandText="insert into Logs(CreateDate,LogLevel,CallSite,Massage,StackTrace) values (@CreateDate,@LogLevel,@CallSite,@Massage,@StackTrace)":insert语句
    29         <parameter name="CreateDate" layout="${longdate}" />对应到insert语句的参数的值-->
    30     <target xsi:type="Database" name="AllDatabase" dbProvider="MySql.Data.MySqlClient"
    31                     connectionString="Server=XXX.XXX.XXX.XXX;Database=ProjectLogDB;Uid=XXX;Pwd=XXX;"
    32                     commandText="insert into Logs(CreateDate,LogLevel,CallSite,Massage,StackTrace) values (@CreateDate,@LogLevel,@CallSite,@Massage,@StackTrace)">
    33       <parameter name="CreateDate" layout="${longdate}" />
    34       <parameter name="LogLevel" layout="${level}" />
    35       <parameter name="CallSite" layout="${callsite:className=True:fileName=True:includeSourcePath=True:methodName=True}" />
    36       <parameter name="Massage" layout="${message}" />
    37       <parameter name="StackTrace" layout="${stacktrace}" />
    38     </target>
    39   </targets>
    40   <rules>
    41     <!-- 定义输出日志:
    42         name="*":记录所有信息
    43         minlevel="Trace":记录的最低错误级别为Trace
    44         writeTo="AllFile":日志写入AllFile的target中-->
    45     <logger name="*" minlevel="Trace" writeTo="AllFile,AllDatabase" />
    46   </rules>
    47 </nlog>
    View Code

    调用如下

    public static Logger log = LogManager.GetLogger("Program");
    static void Main(string[] args)
    {
    log.Trace("Program.Main do someting...");
    log.Debug("Debug99999999999");
    log.Info("Info------------");

    }

  • 相关阅读:
    Dom4J总结
    使用API修改控制台输出的颜色(前景色和背景色)
    小程序[邮箱提取器-EmailSplider]总结
    双击jar不能运行的解决方法
    VMware10中安装centos7没有可用的网络设备
    SynEdit(Delphi XE7)的安装和基本使用
    http协议的构成及字段说明(请求头、请求体、响应头)
    jmeter中JSON Extractor用法
    selenium+python3模拟键盘实现粘贴、复制
    python3操作MySQL实现数据驱动完整实例
  • 原文地址:https://www.cnblogs.com/JaggerMan/p/4884504.html
Copyright © 2011-2022 走看看