NLog学习1—简介

NLog官网
    NLog是一个基于.NET平台编写的类库,我们可以使用NLog在应用程序中添加极为完善的跟踪调试代码。
    NLog是一个简单灵活的.NET日志记录类库。通过使用NLog,我们可以在任何一种.NET语言中输出带有上下文的(contextual information)调试诊断信息,根据喜好配置其表现样式之后发送到一个或多个输出目标(target)中。
    NLog的API非常类似于log4net,且配置方式非常简单。NLog使用路由表(routing table)进行配置,但log4net却使用层次性的appender配置,这样就让NLog的配置文件非常容易阅读,并便于今后维护。
    NLog遵从BSD license,即允许商业应用且完全开放源代码。任何人都可以免费使用并对其进行测试,然后通过邮件列表反馈问题以及建议。
    NLog支持.NET、C/C++以及COM interop API,因此我们的程序、组件、包括用C++/COM 编写的遗留模块都可以通过同一个路由引擎将信息发送至NLog中。
    NLog允许我们自定义从跟踪消息的来源(source)到记录跟踪信息的目标(target)的规则(rules)。记录跟踪信息的目标(target)可以为如下几种形式:

  • 文件
  • 文本控制台
  • Email
  • 数据库
  • 网络中的其它计算机(通过TCP或UDP)
  • 基于MSMQ的消息队列
  • Windows系统日志

    除此之外,每一条跟踪消息都可以自动带有上下文信息(contextual information),并将其发送给记录跟踪信息的目标。这些上下文信息可以包含如下内容:

  • 当前的日期和时间(多种格式)
  • 记录等级
  • 来源名称
  • 输出跟踪消息的方法的堆栈信息
  • 环境变量的值
  • 异常的详细信息
  • 计算机、进程和线程名称

每条跟踪信息都包含一个记录等级(log level)信息,用来描述该条信息的重要性。NLog支持如下几种记录等级:

  • Trace- 最常见的记录信息,一般用于普通输出
  • Debug- 同样是记录信息,不过出现的频率要比Trace少一些,一般用来调试程序
  • Info- 信息类型的消息
  • Warn- 警告信息,一般用于比较重要的场合
  • Error- 错误信息
  • Fatal- 致命异常信息。一般来讲,发生致命异常之后程序将无法继续执行。

NLog的.NET API的过滤信息功能执行效率很高,这样我们就可以一直保留程序中的日志写入代码,然后由NLog在运行时将其根据需要过滤掉。在一个1.6G单CPU笔记本电脑上,NLog每秒钟可以过滤掉1.5亿条日志写入语句!加上异步处理(asynchronous processing)以及其他包装程序(wrappers)的支持,NLog将成为一个极为强大的、且极具伸缩性的日志记录工具。

Support

NLog supports the following platforms:
.NET Framework 3.5, 4, 4.5, 4.6 & 4.7
.NET Framework 4 client profile
Xamarin Android
Xamarin iOs
Windows Phone 8
Silverlight 4 and 5
Mono 4
ASP.NET 4 (NLog.Web package)
ASP.NET Core (NLog.Web.AspNetCore package)
.NET Core (NLog.Extensions.Logging package)
.NET Standard 1.x - NLog 4.5
.NET Standard 2.x - NLog 4.5
UWP - NLog 4.5

如果觉得文章写得还行,请点个赞。如果想与我进一步交流,可以关注我的公众号或者加我的微信。

个人微信

公众号_DotNet微说.jpg

你可能感兴趣的:(NLog学习1—简介)