Microsoft.Extensions.Logging与。 NLog

问题描述 投票:1回答:1

[我看到很多帖子都提到Microsoft.Extensions.Logging与NLog一起使用。

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

具体说明为什么需要它,或者与NLog一起使用它有什么好处?

logging nlog microsoft-extensions-logging
1个回答
1
投票

使用NLog,您可以做:

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

适用于所有平台和所有框架。

Microsoft.Extensions.Logging

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

例如,在ASP.NET Core中,您可以注入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,有以下软件包:

NLog专业人士

直接使用NLog的优点

  • 最佳表现
  • 带有logger API的更多选项,例如Logger.WithProperty(..)
  • 适用于所有平台
  • 不需要依赖注入,可以节省复杂性。
  • Pros Microsoft.Extensions.Logging

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

  • 与ASP.NET Core完全集成,例如Microsoft还写入记录器API,NLog也将捕获(并可能对其进行过滤)
  • 写入日志抽象将使您的代码与日志库无关。
  • 与.NET Core依赖注入一起很好地工作
© www.soinside.com 2019 - 2024. All rights reserved.