Ale*_*erl 22 logging nlog microsoft-extensions-logging
我看到很多帖子提到 Microsoft.Extensions.Logging 和 NLog 的使用。
我想更好地了解 Microsoft.Extensions.Logging 的用途?
特别是为什么需要它或者将它与 NLog 一起使用有什么好处?
Jul*_*ian 26
使用 NLog,您可以:
var logger = NLog.LogManager.GetCurrentClassLogger();
logger.Info("Hello {Name}", "Earth");
Run Code Online (Sandbox Code Playgroud)
这适用于所有平台和所有框架。
随着 .NET Core 的引入,Microsoft 引入了日志抽象 - Microsoft.Extensions.Logging。您可以在项目中使用该日志抽象并将其与 NLog 集成。
例如,在 ASP.NET Core 中,您可以注入Microsoft.Extensions.Logging.ILogger<HomeController>并将日志发送到 NLog。(请参阅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();
}
Run Code Online (Sandbox Code Playgroud)
对于 NLog 和 Microsoft.Extensions.Logging,有以下包:
直接使用 NLog 的优点
Logger.WithProperty(..)通过 Microsoft.Extensions.Logging 使用 NLog 的优点:
更新:添加 -在 appsettings.json 中使用 NLog