gpt4 book ai didi

logging - Microsoft.Extensions.Logging 与。日志

转载 作者:行者123 更新时间:2023-12-04 23:35:38 27 4
gpt4 key购买 nike

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

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

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

最佳答案

使用 NLog,您可以:

var logger = NLog.LogManager.GetCurrentClassLogger();
logger.Info("Hello {Name}", "Earth");
这适用于所有平台和所有框架。
Microsoft.Extensions.Logging
对于 .NET Core,微软推出了 ILogger abstraction来自 Microsoft.Extensions.Logging。您可以在项目中使用该日志记录抽象并将其与 NLog 集成。
例如,在 ASP.NET Core 中,您可以注入(inject) Microsoft.Extensions.Logging.ILogger<HomeController>这可以将日志发送到 NLog。 (见 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 有以下包:
  • .NET 核心日志记录抽象位于 Microsoft.Extensions.Logging.Abstractions 包中
  • 这些抽象的 NLog 集成在包 NLog.Extensions.Logging 中。 .您可以将此包用于 .NET Core 控制台应用程序。
  • 对于 ASP.NET Core,有一个优化的包 NLog.Web.AspNetCore它使用 NLog.Extensions.Logging

  • 比较
    NLog 专业人士
    直接使用 NLog 的优点
  • 最佳性能
  • 记录器 API 的更多选项,例如Logger.WithProperty(..)
  • 适用于所有平台
  • 不需要依赖注入(inject),这可以节省复杂性。

  • 优点 Microsoft.Extensions.Logging
    通过 Microsoft.Extensions.Logging 使用 NLog 的优点:
  • 与 ASP.NET Core 完全集成,例如Microsoft 还写入记录器 API,NLog
  • 也将捕获(并可能过滤)
  • 写入日志抽象将使您的代码独立于日志库。
  • 适用于 .NET Core 依赖注入(inject)
  • : 你可以configure NLog with appsettings.json - 所以使用 JSON 而不是 XML

  • 更新:添加 - Using NLog with appsettings.json

    关于logging - Microsoft.Extensions.Logging 与。日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58209076/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com