Nlog是.net平台下的开源日志组件,相当于log4net用法配置更简单。
用途可以将日志输出到数据库,文本文件,控制台等。
首先引用NLog.dll,顺便也将NLog.xml丢到运行目录
准备工作完后,接下来的工作就非常快
添加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">
<!-- 定义参数:
${basedir}:系统路径
${shortdate}:短日期 yyyy-MM-dd(例:--)
${basedir}/Logs/${shortdate}:即为在系统路径下的Logs文件夹下面的日期文件夹-->
<variable name="logDirectory" value="${basedir}/Logs/${shortdate}"/>
<targets>
<!-- 定义输出模板:
type="File":这个记录方式为文件类型
fileName="${logDirectory}/All.log":表示输出到文件All.log中
layout="...":输出文件中错误的显示格式
${logDirectory}:为上述定义的路径
${longdate}:输出长日期 yyyy-MM-dd HH:mm:ss.ffff(例:-- ::21.2120)
${level}:错误等级(由低到高为Trace,Debug,Info,Warn,Error,Fatal)
${newline}:输出 新的一行
${stacktrace}:输出 堆栈信息
${callsite:className=True:fileName=True:includeSourcePath=True:methodName=True}:输出 命名空间.类名.方法名(文件路径:行号)
${message}:输出错误信息-->
<target xsi:type="File" name="AllFile" fileName="${logDirectory}/All.log"
layout="${longdate} ■${level}${newline} ▲${stacktrace}${newline} ◇${callsite:className=True:fileName=True:includeSourcePath=True:methodName=True}${newline} ◆${message}${newline}${newline}***************************************************************************" >
</target>
<!-- 定义输出到MySQL中:
type="Database":这个记录方式是数据库
dbProvider="MySql.Data.MySqlClient":使用MySQL的连接方式
connectionString="Server=XXX.XXX.XXX.XXX;Database=ProjectLogDB;Uid=XXX;Pwd=XXX;":数据库的连接字符串
commandText="insert into Logs(CreateDate,LogLevel,CallSite,Massage,StackTrace) values (@CreateDate,@LogLevel,@CallSite,@Massage,@StackTrace)":insert语句
<parameter name="CreateDate" layout="${longdate}" />对应到insert语句的参数的值-->
<target xsi:type="Database" name="AllDatabase" dbProvider="MySql.Data.MySqlClient"
connectionString="Server=XXX.XXX.XXX.XXX;Database=ProjectLogDB;Uid=XXX;Pwd=XXX;"
commandText="insert into Logs(CreateDate,LogLevel,CallSite,Massage,StackTrace) values (@CreateDate,@LogLevel,@CallSite,@Massage,@StackTrace)">
<parameter name="CreateDate" layout="${longdate}" />
<parameter name="LogLevel" layout="${level}" />
<parameter name="CallSite" layout="${callsite:className=True:fileName=True:includeSourcePath=True:methodName=True}" />
<parameter name="Massage" layout="${message}" />
<parameter name="StackTrace" layout="${stacktrace}" />
</target>
</targets>
<rules>
<!-- 定义输出日志:
name="*":记录所有信息
minlevel="Trace":记录的最低错误级别为Trace
writeTo="AllFile":日志写入AllFile的target中-->
<logger name="*" minlevel="Trace" writeTo="AllFile,AllDatabase" />
</rules>
</nlog>

调用如下

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

}

Nlog的简单使用的更多相关文章

  1. Nlog 简单的快速攻略

    废话不多说直接进入正题. 1.在项目中加入Nlog的应用 安装后会出现两个文件 2.我们打开Nlog.config配置文件设置日志记录 <?xml version="1.0" ...

  2. Logging with NLog

    相比较log4net, 我更喜欢NLog, 因为NLog 更简单, 而且配置选项也更加的清楚,可能是因为log4net 是从log4j 移植过来的一个原因吧,总感觉有很多的java 成分在. 要使用N ...

  3. NLog日志框架使用探究-1

    目录 前言 为什么是NLog? 目的 配置 基本配置 日志等级 输出例子 目标 参数 规则 日志分发 日志收集 结语 参考文档 前言 日志是每个程序的基本模块.本文是为了探究如何通过NLog方便及记录 ...

  4. .Net快速上手Nlog日志组件

    目录 一.NLog 简介 二.NLog 安装 三. NLog 配置 四.程序代码中写日志 五.参考 一.NLog 简介 NLog是适用于各种.NET平台的灵活,免费的日志记录平台.NLog使写入多个目 ...

  5. ASP.NET MVC 常用扩展点:过滤器、模型绑定等

    一.过滤器(Filter) ASP.NET MVC中的每一个请求,都会分配给对应Controller(以下简称“控制器”)下的特定Action(以下简称“方法”)处理,正常情况下直接在方法里写代码就可 ...

  6. MVC 常用扩展点:过滤器、模型绑定等

    MVC 常用扩展点:过滤器.模型绑定等 一.过滤器(Filter) ASP.NET MVC中的每一个请求,都会分配给对应Controller(以下简称"控制器")下的特定Actio ...

  7. 从头编写 asp.net core 2.0 web api 基础框架 (3)

    第一部分:http://www.cnblogs.com/cgzl/p/7637250.html 第二部分:http://www.cnblogs.com/cgzl/p/7640077.html 之前我介 ...

  8. 【转载】从头编写 asp.net core 2.0 web api 基础框架 (3)

    Github源码地址:https://github.com/solenovex/Building-asp.net-core-2-web-api-starter-template-from-scratc ...

  9. 控制台程序秒变Windows服务(Topshelf)

    项目中有些时候需要写服务,一般我们都是先创建控制台程序,测试,运行,成功之后再创建windows服务程序,这样好麻烦啊,有没有简单的控制台程序直接变成Widnows服务,经过查找,找到了Topshel ...

随机推荐

  1. grunt打包过程中的注意点

    1.安装nodeJS   nodeJS下载地址: http://www.nodejs.org/download/ 2.   在Node.js command prompt 这个控制面板输入 npm i ...

  2. Android Bitmap与DrawAble与byte[]与InputStream之间的转换工具类【转】

    package com.soai.imdemo; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; ...

  3. POJ 1823 Hotel 线段树

    题目链接 线段树的区间合并. 和上一题差不多....第三种操作只需要输出maxx[1]的值就可以. #include <iostream> #include <vector> ...

  4. PyCrpyto windows安装使用方法

    PyCrypto - The Python Cryptography Toolkit PyCrypto是一个免费的加密算法库,支持常见的DES.AES加密以及MD5.SHA各种HASH运算. ---- ...

  5. python 字符串探讨

    本文内容基于python3 几乎所有有用的程序都会涉及到某些文本处理,不管是解析数据还是产生输出.字符串的学习是重点中的重点,这一节将重点关注文本的操作处理,比如提取字符串,搜索,替换以及解析等.大部 ...

  6. IOS 特定于设备的开发:处理基本方向

    UIDevice类使用内置的orientation属性获取设备的物理方向.IOS设备支持这个属性的7个可能的值. >UIDeviceOrientationUnknown:方向目前未知. > ...

  7. SSD的基本架构

    在SSD的优势一章中,我们对比过HDD和SSD的内部区别.现在,我们再谈一下SSD的基本架构.                   上图为一款典型的SSD架构图解,各部分的解释如下:       操作 ...

  8. HDU1695-GCD(数论-欧拉函数-容斥)

    GCD Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submis ...

  9. 【课程分享】ASP.NET MVC5&amp;微信公众平台整合开发实战(响应式布局、JQuery Mobile,Windows Azure、微信核心开发)

    对这个课程有兴趣的,能够联系我QQ2748165793 基础知识储备 ASP.NET MVC 5基础(6讲) 第一讲-初识ASP.NET MVC并搭建整合开发环境 第二讲-深入MVC开发模式 第三讲- ...

  10. Android开发之布局优化

    1.抽象布局标签 (1) <include>标签 include标签经常使用于将布局中的公共部分提取出来供其它layout共用,以实现布局模块化.这在布局编写方便提供了大大的便利. 以下以 ...