在上一家公司就在使用NLog做日志记录,调用方便又好配置,查看日志非常方便。所以在新公司新项目中就想到了它。背景交代完毕。

  先看配置,在ASP.NET应用程序中,NLog会自动扫描以下这几个文件

1)web.config
2)与web.config在同一目录下的web.nlog文件
3)程序目录下的NLog.config文件
4)NLog.dll所在目录下的NLog.dll.nlog文件

  我们按第一种文件配置,那么下面就是web.config配置文件中的内容

<configSections>

  <!--Nlog-->

  <section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog" restartOnExternalChanges="false"/>

</configSections>

<nlog>

  <include file="${basedir}/Configuration/NLog.config" />

</nlog>

  然后就是NLog.config。这个文件的内容看名字就知道,是NLog的具体行为的配置信息,示例如下

<?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">
  <targets>
    <target name="exceptionFile" xsi:type="File" fileName="${basedir}/Site_Log/${shortdate}/${logger}_${level}.txt" layout="${longdate}|${level:uppercase=true}|${logger}${newline}${message}${newline}"/>
    <target name="console" xsi:type="ColoredConsole" layout="${date:format=HH\:mm\:ss}|${level}|${stacktrace}|${message}"/>
  </targets>
  <rules>
    <logger name="*" minlevel="Debug" writeTo="exceptionFile"/>
    <logger name="*" minlevel="Info" writeTo="console"/>
    <logger name="*" minlevel="Trace" writeTo="console"/>
    <logger name="*" minlevel="Fatal" writeTo="exceptionFile"/>
    <logger name="*" minlevel="Error" writeTo="exceptionFile"/>
    <logger name="*" minlevel="Warn" writeTo="exceptionFile"/>
  </rules>
< /nlog>

  下面我们一个一个配置节点来说明

  首选说明,NLog的配置文件大小写是敏感的,一定要注意。

< nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

  命名空间可以配置,也可以不配置。如果配置了命名空间,那么就可以使用VS的智能感知了

<targets>
    <target name="exceptionFile" xsi:type="File" fileName="${basedir}/Site_Log/${shortdate}/${logger}_${level}.txt" layout="${longdate}|${level:uppercase=true}|${logger}${newline}${message}${newline}"/>
    <target name="console" xsi:type="ColoredConsole" layout="${date:format=HH\:mm\:ss}|${level}|${stacktrace}|${message}"/>
</targets>

  定义每种日志记录方式的输出。示例中定义了两种输出方式,分别是File和Console形式,

  name:节点/输出名称

  xsi:type:输出类型

  fileName:日志的文件名

  layout:这是NLog比较出彩的一个特性,布局功能。格式是${}。在括号中可以定义日期、log记录级别、调用程序等上下文信息。既可以规范的命名文件,也可以记录在日志中,方便分析。

<rules>
    <logger name="*" minlevel="Debug" writeTo="exceptionFile"/>
    <logger name="*" minlevel="Info" writeTo="console"/>
    <logger name="*" minlevel="Trace" writeTo="console"/>
    <logger name="*" minlevel="Fatal" writeTo="exceptionFile"/>
    <logger name="*" minlevel="Error" writeTo="exceptionFile"/>
    <logger name="*" minlevel="Warn" writeTo="exceptionFile"/>
</rules>

  name:记录日志的名字。可以使用通配符*

  minlevel:记录日志的最低级别,如配置为Debug,那么所有高于等于这个级别的日志都会写到日志文件里。当然也可以指定maxlevel或者单一level,如level=“Debug”,那么只记录Debug级别的信息。也可以指定levels,格式为levels=“Debug,Info”。

  writeTo:写入的目标日志文件

  配置文件就这么多,接下来就应该是程序调用了,声明一个公共变量,如下

public static Logger logger = LogManager.GetCurrentClassLogger();

  在该类的方法中使用

logger.Info("我是EddyPeng,感谢阅读!")

  好了,NLog的简单应用就到这里,相信如果只是简单的使用,这篇文章应该就已经足够了。如果有更深入的学习需求,可以移步以下两个地址

http://www.cnblogs.com/dflying/category/78087.html

http://nlog-project.org/wiki

转载于:https://www.cnblogs.com/EddyPeng/archive/2012/08/24/2653634.html

ASP.NET应用程序使用NLog记录日志相关推荐

  1. C# Asp.Net6 MVC,Log4net NLog 日志插件应用 及Windows、Liux环境下程序发布

    C# Asp.Net6 MVC,Log4net NLog 日志插件应用 及Windows.Liux环境下程序发布 一. MVC含义 二.数据传输 1.控制器向视图传输数据 三.日志组件Log4net ...

  2. .NET中使用NLog记录日志

    以前小编记录日志使用的是Log4Net,虽然好用但和NLog比起来稍显复杂.下面小编就和大伙分享一下NLog的使用方式. 引用NLog.Config 在使用NLog之前,我们要首先添加对NLog.Co ...

  3. 如何在 ASP.NET Core 中使用 NLog 的高级特性

    NLog 是一个开源的轻量级日志框架,提供了丰富的日志路由和管理功能,同时 NLog 也是非常容易的去配置和扩展,其实在之前的文章中我已经讨论过了 Nlog,在这篇我准备继续和大家讨论一下 NLog ...

  4. ASP.NET 应用程序生命周期概述

    本主题概述应用程序生命周期,列出重要的生命周期事件,并描述如何编写适合应用程序生命周期的代码.在 ASP.NET 中,若要对 ASP.NET 应用程序进行初始化并使它处理请求,必须执行一些处理步骤.此 ...

  5. 一步一步创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar](三)

    前言 上一篇<一步一步创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar](二)>我们通过如下操作: 创建实体及工具类 创建Re ...

  6. IIS 5.0 和 6.0 的 ASP.NET 应用程序生命周期

    本文内容 应用程序生命周期概述 生命周期事件和 Global.asax 文件 编译生命周期 HTTP 模块 本文概述 VS 2008 ASP.NET 应用程序的生命周期,列出了重要的生命周期事件,并描 ...

  7. 建立asp.net应用程序提示:无法与服务器建立连接

    建立asp.net应用程序时提示   "尝试建立Web项目或打开位于URL:"Http://localhost/WebApplication1"的Web项目时,Web服务 ...

  8. IIS 7.0的ASP.NET应用程序生命周期概述

    小结于:http://msdn.microsoft.com/zh-cn/library/bb470252(v=vs.100).aspx IIS 7.0的ASP.NET应用程序生命周期概述 (一)结构概 ...

  9. 使用ASP.NET Abstractions增强ASP.NET应用程序的可测试性

    概述 在阅读本文之前,兄弟们请先注意两点: 我们现在谈的是传统ASP.NET应用程序的可测试性,而不是ASP.NET MVC应用程序的可测试性. 我们现在谈的是"增强",而不是说传 ...

最新文章

  1. AI Drive 直播 | Objects365物体检测及CrowdHuman人体检测挑战赛线上颁奖
  2. (视频+图文)机器学习入门系列-第1章 引言
  3. access中总计为first_用Access开发生产管理系统
  4. nginx访问目录是没加/的重定向控制
  5. Maven高级之插件开发
  6. 主管问我:你以为单元测试,只是测试吗?
  7. Detectron2 win10踩坑记录
  8. 绝对不可错过的图形学算法!迭代最近点算法——ICP算法
  9. dataframe索引筛选_筛选的索引:性能分析和隐藏成本
  10. 高级 Java 程序员都在学什么?
  11. TinyWeb--C++构建高性能Web服务器
  12. cad图纸比对lisp_cad图纸怎么找出差异?教你怎么对比CAD图纸版本差异
  13. VGA显示原理、时序标准及相关参数
  14. 通过TABULATE过程制作汇总报表
  15. 腾讯 云通信 如何启动Demo
  16. ps快速去掉图中的字
  17. python3自动下载优酷视频小程序
  18. Xshell简单介绍与作用
  19. Anacoda的用途
  20. docker :gitlab Uploading artifacts to coordinator... too large archive should fail job

热门文章

  1. python里的“__all__ ”作用
  2. 1001 字符串“水”题(二进制,map,哈希)
  3. App开发(Android与php接口)之:短信验证码
  4. 博客搬迁地址到csdn了
  5. 开发人员能力不足的情况下如何推进敏捷开发?
  6. 六个大坑,把“伟大的产品”秒成了渣
  7. 【分析】立即购买vs加入购物车,移动电商购买流程差异分析
  8. [译] RxJava JDBC 简介
  9. 將軍苑 - 收藏集 - 掘金
  10. ubuntu修改启动为文本模式