C#日志库三(NLog基础)

目录

一 上章回顾

二 Nlog

1 简介

2 配置

3 功能

三 优势

四 弊端

五 应用情景

六 总结

七 下章预告


一 上章回顾

一 上章回顾

二 Log4Net

1 简介

2 配置

三 优势

四 弊端

五 应用情景

六 总结

七 下章预告


二 Nlog

Nlog博各家之所长,既拥有Log4net配置的灵活性,又兼顾了Serilog结构化日志记录的特性

1 简介

Nlog支持结构化日志记录,并且在日志存储的位置和方式方面都保持很高的灵活性,兼备二者的特点

2 配置

实例通过Nlog,生成记录器实例,GetCurrentClassLogger方法确保将记录器实例分配给当前类,然后记录信息日志。

//初始化      
  private readonly NLog.Logger _logger = LogManager.GetCurrentClassLogger();
//记录信息级别
            _nlog.Error("这是Nlog的输出日志");

3 功能

NLog 提供了两全其美的功能——结构化日志记录和 XML 驱动的配置。

            _nlog.Error("这是Nlog的输出日志,欢迎{@logInfo}登录上线", loginInfo);
            _nlog.Error("这是Nlog的输出日志,User Name is {UserName},password is {Password}", loginInfo.UserName, loginInfo.Password);

这简单的几行代码和Serilog一样,可以记录类名到属性全面详细的信息,更容易在以后进行查找处理,请注意我们是如何将userName和password直接传递到消息记录中去的,同学们可以猜测一下记录结果会是什么样的?

有同学猜到了吗,他和Serilog一样支持结构化查询记录


三 优势

  1. 结构化日志记录:不如 Serilog 那样深入挖掘,但它可以在不增加额外开销的情况下完成工作。
  2. 灵活性:在可配置性和定义日志输出(文件、控制台、数据库或电子邮件)方面,NLog 与 log4net 一样灵活方便。
// NLog – 配置多个日志输出目标
var config = new NLog.Config.LoggingConfiguration();

// 日志输出目标 - 文件和控制台
var logfile = new NLog.Targets.FileTarget("logfile") { FileName = "log.txt" };
var logconsole = new NLog.Targets.ConsoleTarget("logconsole");

// 日志记录器与目标的映射规则
config.AddRule(LogLevel.Info, LogLevel.Fatal, logconsole);
config.AddRule(LogLevel.Debug, LogLevel.Fatal, logfile);

// 应用配置
NLog.LogManager.Configuration = config;
    给出的代码提供了一个场景,其中 NLog 配置两个日志记录目标,即Console和File。AddRule函数是将特定日志级别映射到输出目标的方法。

    四 弊端

    1. 与 log4net 相比还不够成熟;它存在的时间较短。
    2. 尽管它具有结构化日志记录,但它并不像 Serilog 那样发展或复杂。如果你对结构化日志记录有更高需求,你可能还想探索 Serilog。

    五 应用情景

    对于需要结构化日志记录功能但又不想承担Serilog可能带来的计算负担的项目来说是首选。在日志生成量相当高的限流场景下,NLog的性能表现更佳。


    六 总结

    以上我给大家介绍了Nlog简介、优势、弊端、应用场景等内容,我们从中可以了解Nlog的工作原理。


    七 下章预告

    下一章我会教大家三者对比。


    博主RaymondLeigh:如果您觉得本文为您提供了结局思路或解决了您的实际问题,麻烦您🙏帮忙点赞、收藏、评论、关注一键四连,您的举手之劳将为我写作提供动力源泉!🤞

    print('Hello,RaymondLeigh!')  # 每日问候,跟大家问好!

    🔥精品框架专栏:Prism专栏 WPF专栏 


    🌞精品前端UI设计专栏:MaterialDesign专栏


    💾精品后端数据库专栏:SqlServer专栏 EFCore专栏 Socket专栏 C#日志库专栏


    💻精品程序开发专栏  VisualStudio专栏

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值