Microsoft.Extensions.Logging与日志

编程入门 行业动态 更新时间:2024-10-25 05:22:11
本文介绍了Microsoft.Extensions.Logging与日志的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我看到很多帖子都提到了Microsoft.Extensions.Logging和NLog的用法.

I see a lot of posts mentioning usage of Microsoft.Extensions.Logging together with NLog.

我想更好地了解Microsoft.Extensions.Logging的用途是什么?

I'd like to better understand what Microsoft.Extensions.Logging is used for?

特别是为什么需要它,或者与NLog一起使用它有什么好处?

And specifically why is it needed or what's the benefit of using it together with NLog?

推荐答案

使用NLog,您可以执行以下操作:

With NLog you could do:

var logger = NLog.LogManager.GetCurrentClassLogger(); logger.Info("Hello {Name}", "Earth");

这适用于所有平台和所有框架.

That works for all platforms and all frameworks.

随着.NET Core的引入,Microsoft引入了日志记录抽象-Microsoft.Extensions.Logging.您可以在项目中使用该日志记录抽象,并将其与NLog集成.

With the introduction of .NET Core, a logging abstraction is introduced by Microsoft - Microsoft.Extensions.Logging. You could use that logging abstraction in your project and integrate it with NLog.

例如,在ASP.NET Core中,您可以注入Microsoft.Extensions.Logging.ILogger<HomeController>,然后可以将日志发送到NLog. (请参阅 ASP.NET Core 2入门· NLog/NLog Wiki )

For example in ASP.NET Core you could inject Microsoft.Extensions.Logging.ILogger<HomeController> and that could send the logs to NLog. (see Getting started with ASP.NET Core 2 · NLog/NLog Wiki)

using Microsoft.Extensions.Logging; public class HomeController : Controller { private readonly ILogger<HomeController> _logger; public HomeController(ILogger<HomeController> logger) { _logger = logger; } public IActionResult Index() { _logger.LogInformation("Index page says hello {Name}", "Universe"); return View(); }

包裹

对于NLog和Microsoft.Extensions.Logging,有以下软件包:

Packages

For NLog and Microsoft.Extensions.Logging there are the following packages:

  • .NET核心日志记录抽象位于软件包 Microsoft.Extensions.Logging中.Abstractions
  • 这些抽象的NLog集成在软件包 NLog.Extensions.Logging NLog.Extensions.Logging .您可以将此包用于.NET Core控制台应用程序.
  • 对于ASP.NET Core,有一个优化的程序包 NLog.Web.AspNetCore 使用NLog.Extensions.Logging
  • The .NET core logging abstractions are in the package Microsoft.Extensions.Logging.Abstractions
  • The NLog integration for those abstractions is in package NLog.Extensions.Logging. You could use this package for .NET Core console applications.
  • For ASP.NET Core, there is an optimized package NLog.Web.AspNetCore which uses NLog.Extensions.Logging

直接使用NLog的优点

Pros of using NLog directly

  • 最佳表现
  • 记录器API的更多选项,例如Logger.WithProperty(..)
  • 适用于所有平台
  • 不需要依赖注入,可以节省复杂性.
  • Best performance
  • More options with the logger API, e.g. Logger.WithProperty(..)
  • Works in all platforms
  • No Dependency Injection needed which saves complexity.

通过Microsoft.Extensions.Logging使用NLog的优点:

Pros of using NLog via Microsoft.Extensions.Logging:

  • 与ASP.NET Core完全集成,例如微软还向记录器API写入内容,并且也会被NLog捕获(并可能进行过滤)
  • 写入日志抽象将使您的代码与日志库无关.
  • 与.NET Core依赖项注入配合得很好

更多推荐

Microsoft.Extensions.Logging与日志

本文发布于:2023-11-15 04:07:19,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1591002.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:日志   Microsoft   Extensions   Logging

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!