0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

NLog的主要功能、安装及示例

我快闭嘴 来源:简仪科技 作者:简仪科技 2022-09-07 13:00 次阅读

导读

我们在开发中经常需要记录程序或系统的操作状态以及追踪执行过程,以便快速的定位问题。 NLog是一个灵活且免费的日志平台,适用于各种.NET平台,包括.NET标准。NLog可写入多个目标(数据库、文件、控制台等),并即时更改日志记录配置。 NLog支持结构化和传统的日志记录,其主要特点有高性能、易于使用、易于扩展和灵活配置。 NLog官网地址:https://nlog-project.org/ NLog参考文档:https://github.com/NLog/NLog/wiki

本期小百科介绍在C#编程时如何使用NLog来打印日志。

NLog的主要功能

1.配置简单

NLog无论是通过配置文件还是以编程方式,配置都非常简单。即使不重新启动应用程序,也可以更改配置。

2.可模板化

Nlog每条日志都可以使用各种布局渲染进行模板化。

3.可拓展性

NLog 本身就自带数种数据记录的对象与数据输出的格式,不仅如此,还提供可自定义的数据记录目标与数据输出格式。

4.结构化日志记录

NLog完全支持结构化日志记录并处理消息模板和自定义日志事件属性。

5.可拓展Microsoft日志记录

NLog可以与Microsoft Extensible Logging(和ASP.NET Core)完全集成,而无需替换标准的 Microsoft LoggerFactory。NLog自动捕获LogEvent属性,并可以在结构化日志目标输出中使用它们。

6.appsettings.json

NLog配置可以从appsettings.json加载,作为NLog.config XML文件的替代方案。也可以使用 appsettings.json中的值和${configsetting}来配置NLog目标。

7.支持多种记录跟踪信息的目标(target)

1)文件;

2)事件日志;

3)数据库;

4)文本控制台;

5) E-mail;

6)调试器输出;

7)还有一些包装器目标可以提供缓冲、负载平衡、故障转移情况、异步写入和许多其他场景等。

在配置选项页面上提供了完整的目标列表。如果没有找到满足需求的目标,用户可以很容易地编写一个定制的目标。

8.支持多平台,例如

1) .NET 5 & 6 (.NET Standard 2.0);

2) .NET Framework 3.5 - 4.8;

3) .NET Core 1.0 - 3.1;

4) Xamarin Android + iOS (.NET Standard);

5) UWP (.NET Standard);

6) Mono 4;

7) ASP.NET Core (NLog.Web.AspNetCore package);

8) ASP.NET Classic (NLog.Web package)等。

NLog安装

1. 在Visual Studio中,可以通过NuGet下载安装NLog插件。

选中项目名称,右键后点击“管理NuGet程序包”(如图1),即可进入NuGet管理器。

faadb992-2e66-11ed-ba43-dac502259ad0.png

图 1点击“管理NuGet程序包”

2. 点击浏览,在搜索框中搜索“NLog”,分别安装图2中“Nlog”和“NLog.Config”,点击名称右侧的黑色箭头进行安装。
faca7d70-2e66-11ed-ba43-dac502259ad0.png

图 2安装“Nlog和NLog.Config”

NLog示例

使用USB-61902进行单通道有限点采集,采样率设置为10000(Sa/s),采样点数设置为20000,分别记录启动采集和结束采集的时刻。

1.首先在代码顶端添加usingfae4aede-2e66-11ed-ba43-dac502259ad0.png

2.点击项目中“NLog.config”

项目引入NLog.Config之后,会自动添加一个NLog.Config配置文件,程序运行的时候,会自动加载NLog.Config作为Nlog的配置。

打开该XML文件,其中有详细说明,targets配置输出目标,rules配置路由规则。

1)全局配置faf64aea-2e66-11ed-ba43-dac502259ad0.png
这是NLog.config的默认配置,一般不需要更改,其中 autoReload:设置修改配置文件后是否允许自动加载无须重启程序;
  • autoReload:设置修改配置文件后是否允许自动加载无须重启程序;
  • throwExceptions:内部日志系统抛出异常;
  • internalLogLevel:可选Trace/Debug/Info/Warn/Error/Fatal决定内部日志的级别,Off为关闭;
  • internalLogFile:把内部的调试和异常信息都写入指定文件里

2)targets定义日志的输出目标

fb0da186-2e66-11ed-ba43-dac502259ad0.png

targets中是对输出目标的配置,需要配置名称、输出类型、内容格式等,其中

  • name是设置输出目标的名称;

  • xsi:type是设置输出类型,其中File是文件类型;

  • fileName是设置输出文件路径,其中${basedir}是相对路径,/logs是生成文件夹并命名为logs${shortdate}.log是以年月日日期生成log文件名称;

  • layout是设置生成内容的格式,其中${longdate}是返回长时间格式,${uppercase:${level}}是返回当前日志的等级,${message}是用户设置的信息。

3)rules定义对日志信息的路由规则

fb22f81a-2e66-11ed-ba43-dac502259ad0.png

rules中是对日志路由顺序的配置,可以将日志分不同级别进行输出,不同级别的日志代表日志的重要程度,比如一些debug级别的日志在生产环境就会被控制不输出,以减少日志文件的大小。
  • minlevel是设置日志的最小等级,Debug是日志等级中的一种

  • writeTo是设置日志输出到target的目标,f为targets中配置的目标名称;

备注:日志级别有如下各种

a) Trace:最常见的记录信息,一般用于普通输出;

b) Debug:同样是记录信息,不过出现的频率要比Trace少一些,一般用来调试程序;

c) Info:信息类型的消息;

d) Warn:警告信息,一般用于比较重要的场合;

e) Error:错误信息;

f) Fatal:致命异常信息。一般来讲,发生致命异常之后程序将无法继续执行。

3. 完成对“NLog.config”的配置后,就可以在C#程序中直接完成对NLog的调用。

修改USB-61902单通道有限点采集范例。

1)在aiTask开始任务时,打印日志记录下时间,参考代码如下:

fb37b002-2e66-11ed-ba43-dac502259ad0.png

2)在aiTask停止任务时,打印日志记录下时间,参考代码如下:

fb574782-2e66-11ed-ba43-dac502259ad0.png

4. 运行程序后,即可在文件夹中查看到打印的日志信息,如图3:

fb6b7a90-2e66-11ed-ba43-dac502259ad0.png
审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • net
    net
    +关注

    关注

    0

    文章

    123

    浏览量

    55734
  • 开源
    +关注

    关注

    3

    文章

    2991

    浏览量

    41724
  • 日志
    +关注

    关注

    0

    文章

    126

    浏览量

    10526

原文标题:测量小百科 | NLog灵活免费的.NET开源日志记录

文章出处:【微信号:简仪科技,微信公众号:简仪科技】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    请问TIMx有哪些主要功能

    TIMx简介TIMx主要功能
    发表于 11-09 08:56

    PWM发生器的主要功能

    什么是PWM发生器及其主要功能
    发表于 12-04 07:22

    MusrLicManage的主要功能

    MusrLicManage简介MusrLicManage主要功能
    发表于 12-16 07:22

    ROADM是什么?ROADM节点的主要功能模块包括哪些?

    ROADM是什么?ROADM节点的主要功能模块包括哪些?
    发表于 05-28 06:23

    ECC是什么?有什么主要功能

    ECC是什么?有什么主要功能
    发表于 06-21 07:00

    操作系统内核的主要功能有哪些

    什么是操作系统?操作系统内核的主要功能有哪些?Linux是什么?什么是软件移植?
    发表于 10-19 07:46

    网卡实现的主要功能是什么

    从介质访问控制方法的角度局域网可分为哪几类?以太网交换机是根据什么去转发数据帧的?网卡实现的主要功能是什么?
    发表于 10-20 06:24

    DC的主要功能或者主要作用是什么

    什么是DC?DC能接受多少种输入格式?DC的主要功能或者主要作用是什么?如何配置DC?
    发表于 10-20 07:02

    Linux内核主要功能包括哪些呢

    Linux内核是什么?Linux内核主要功能包括哪些呢?
    发表于 02-28 08:44

    英文打字机的主要功能

    英文打字机的主要功能         
    发表于 12-30 14:32 1009次阅读

    bios的主要功能

    本视频主要详细介绍了bios的主要功能,分别是BIOS系统设置程序、POST上电自检、BIOS系统启动自举程序、硬件IO和中断服务。
    的头像 发表于 03-28 15:10 6735次阅读

    滤波器的主要功能和作用

    本文主要简单介绍滤波器的主要功能和作用,下面就跟小编一起看看吧!
    的头像 发表于 07-28 14:47 4.8w次阅读

    叶片泵有什么主要功能

    鸿承机电:深圳力士乐叶片泵有什么主要功能
    发表于 11-26 15:52 2928次阅读

    直线导轨的主要功能

    直线导轨的主要功能
    的头像 发表于 07-26 17:42 738次阅读
    直线导轨的<b class='flag-5'>主要功能</b>

    滤波器的主要功能和作用

    滤波器的主要功能和作用是处理信号,根据特定的频率响应特性对信号进行频率选择、增强或抑制。以下是滤波器的主要功能和作用。
    的头像 发表于 10-27 11:16 1432次阅读