.NET Core 6 - 如何在 Program.cs 中为依赖注入设置 ILogger(log4net)
.NET Core 6 - How to set ILogger(log4net) for Dependency Injection in Program.cs
我已将我的新项目移至 .NET Core 6,但显然程序和 Startup.cs 文件发生了根本性变化。
我想在每个具有依赖注入的控制器中使用 log4net,但我找不到任何关于登录 .NET Core 6.
的教程
我尝试了什么:
builder.Services.AddLogging();
builder.Logging.AddProvider(loggerProvider);
我应该写什么才能在控制器中使用 ILogger?
ASP.NET Core 6.0 中的登录在 Microsoft Docs. A very brief summary: You register the logging framework you want to use and then use ASP.NET Core's log layer in the application itself. The translation between the two log systems is done by a handler. For log4net there is a handler on GitHub.
中有详细描述
注册
安装处理程序包后,在 Program.cs 中的初始化代码中注册此处理程序:
// Add services to the container.
builder.Services.AddControllersWithViews();
// Add your logging handler
builder.Logging.AddLog4Net();
var app = builder.Build();
如果您的 old-style 模板带有单独的 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();
}
我已将我的新项目移至 .NET Core 6,但显然程序和 Startup.cs 文件发生了根本性变化。
我想在每个具有依赖注入的控制器中使用 log4net,但我找不到任何关于登录 .NET Core 6.
的教程我尝试了什么:
builder.Services.AddLogging();
builder.Logging.AddProvider(loggerProvider);
我应该写什么才能在控制器中使用 ILogger?
ASP.NET Core 6.0 中的登录在 Microsoft Docs. A very brief summary: You register the logging framework you want to use and then use ASP.NET Core's log layer in the application itself. The translation between the two log systems is done by a handler. For log4net there is a handler on GitHub.
中有详细描述注册
安装处理程序包后,在 Program.cs 中的初始化代码中注册此处理程序:
// Add services to the container.
builder.Services.AddControllersWithViews();
// Add your logging handler
builder.Logging.AddLog4Net();
var app = builder.Build();
如果您的 old-style 模板带有单独的 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();
}