[我看到很多帖子都提到Microsoft.Extensions.Logging与NLog一起使用。
我想更好地了解Microsoft.Extensions.Logging的用途是什么?
具体说明为什么需要它,或者与NLog一起使用它有什么好处?
使用NLog,您可以做:
var logger = NLog.LogManager.GetCurrentClassLogger();
logger.Info("Hello {Name}", "Earth");
适用于所有平台和所有框架。
随着.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的优点
Logger.WithProperty(..)
通过Microsoft.Extensions.Logging使用NLog的优点: