.NET Core 6 - 如何在 Program.cs 中设置 ILogger(log4net) 进行依赖注入

Ali*_*tay 10 log4net asp.net-core

我已将新项目移至.NET Core 6,但显然 Program 和 Startup.cs 文件发生了根本性变化。

我想在每个具有依赖注入的控制器中使用 log4net,但我找不到任何有关.NET Core 6 中的日志记录的教程。

我尝试过的:

builder.Services.AddLogging();
builder.Logging.AddProvider(loggerProvider);
Run Code Online (Sandbox Code Playgroud)

我应该写什么来在控制器中使用 ILogger?

小智 13

Microsoft Docs中详细描述了 ASP.NET Core 6.0 中的日志记录。一个非常简短的总结:您注册要使用的日志记录框架,然后在应用程序本身中使用 ASP.NET Core 的日志层。两个日志系统之间的转换由处理程序完成。对于 log4net, GitHub上有一个处理程序。

登记

安装处理程序包后,您可以在 Program.cs 的初始化代码中注册该处理程序:

// Add services to the container.
builder.Services.AddControllersWithViews();

// Add your logging handler
builder.Logging.AddLog4Net();

var app = builder.Build();
Run Code Online (Sandbox Code Playgroud)

如果您有一个带有单独的旧式模板Startup.cs,则必须使用项目自述文件中的示例代码。

写入日志

ILogger现在您可以通过依赖注入在控制器中获取一个实例并使用它进行日志记录。该处理程序负责将这些日志相应地传递到 log4net。

private readonly ILogger<HomeController> logger;

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

public IActionResult Index()
{
    this.logger.LogDebug("Creating /Home/Index");
    return View();
}
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

22855 次

最近记录:

2 年,6 月 前