在 ASP .NET Core Web API Controller 中注入 Serilog 的 ILogger 接口

2024-01-23

我能找到的有关在 ASP .NET Core Web 应用程序中使用 Serilog 的所有示例都使用 MicrosoftILogger<T>接口而不是使用 Serilog 的ILogger界面。

我如何才能使 Serilog 的 ILogger 可以通过构造函数注入?

using Serilog;

public class HomeController : Controller
{
    ILogger logger;

    public HomeController(ILogger logger)
    {
        this.logger = logger;
    }

    public IActionResult Index()
    {
        this.logger.Information("Index was called");
        return View();
    }
}

如果你更喜欢ILogger代替ILogger<HomeController>,您可以尝试注册ILogger.

这里有两个选项可供使用Serialog.Information.

  1. Use Log.Logger

    Log.Logger.Information("Information Log from Log.Logger");
    
  2. 登记ILogger

    //Startup.cs
    services.AddSingleton(Log.Logger);
    
    //Use
    public class HomeController : Controller
    {
        private readonly ILogger _logger;
        public HomeController(ILogger logger)
        {
            _logger = logger;
        }
        public IActionResult Index()
        {
            _logger.Information("Inform ILog from ILogger");
            return View();
        }        
    }
    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 ASP .NET Core Web API Controller 中注入 Serilog 的 ILogger 接口 的相关文章

随机推荐