Run*_*Man 3 log4net dependencies code-injection asp.net-core
我正在尝试在 ASP.NET Core 3.1 应用程序中使用 log4Net,并尝试使用控制器使其与依赖注入一起使用。我成功地能够使用 Log4Net 使用LogManager.GetLogger(type). 任何帮助,将不胜感激。
这是我现在用于日志记录的代码示例:
public class HomeController : Controller
{
private static readonly log4net.ILog _log = LogManager.GetLogger(typeof(Logger));
public HomeController()
{
_log.Debug("Test");
}
}
Run Code Online (Sandbox Code Playgroud)
您想要注入控制器的任何服务都必须在 (Startup.cs) 中注册Startup.ConfigureServices(IServiceCollection),或者通常在 和Program.CreateHostBuilder(string [])之后在 (Program.cs)中注册。CreateDefaultBuilderConfigurWebHostDefaults
您可以使用以下方式注册该服务:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder => /* ... */)
.ConfigureLogging(builder =>
{ // Configuration here:
builder.SetMinimumLevel(LogLevel.Trace);
builder.AddLog4Net("log4net.config");
});
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用Microsoft.Extensions.Logging.ILogger<T>(T正在记录的类在哪里)进行注入,这将使用 Log4Net:
public class HomeController : Controller {
private readonly ILogger<HomeController> _log;
// A suitable logger instance is created by the runtime DI:
public HomeController(ILogger<HomeController> log)
{
_log = log;
_log.Debug("Test");
}
}
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅此处的教程。
| 归档时间: |
|
| 查看次数: |
7188 次 |
| 最近记录: |