博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ASP.NET应用程序使用NLog记录日志
阅读量:6363 次
发布时间:2019-06-23

本文共 2788 字,大约阅读时间需要 9 分钟。

  在上一家公司就在使用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="" xmlns:xsi="">
  <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="" xmlns:xsi="">

  命名空间可以配置,也可以不配置。如果配置了命名空间,那么就可以使用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的简单应用就到这里,相信如果只是简单的使用,这篇文章应该就已经足够了。如果有更深入的学习需求,可以移步以下两个地址

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

你可能感兴趣的文章
Get File Name from File Path in Python | Code Comments
查看>>
显示本月每一天日期
查看>>
Open Source Databases Comparison
查看>>
sprintf,你知道多少?
查看>>
[转]java 自动装箱与拆箱
查看>>
NET的堆和栈04,对托管和非托管资源的垃圾回收以及内存分配
查看>>
think in coding
查看>>
IdHttpServer实现webservice
查看>>
HTML的音频和视频
查看>>
Unsupported major.minor version 52.0
查看>>
面对对象之差异化的网络数据交互方式--单机游戏开发之无缝切换到C/S模式
查看>>
优酷网架构学习笔记
查看>>
把HDFS里的json数据转换成csv格式
查看>>
浅谈 Swift 中的属性(Property)
查看>>
WEEX-EROS | 集成并使用 bindingx
查看>>
Spring5源码解析-Spring中的异步和计划任务
查看>>
广州牵引力来告诉你学编程先学什么语言好?
查看>>
广州牵引力总结初学者怎样学好UI设计?
查看>>
使用Metrics方法级远程监控Java程序
查看>>
Spring核心系列之Bean的生命周期
查看>>