Asp.net core 如何使用依赖注入使Log4Net与ASP.NET Core 3.1一起工作?
我尝试在ASP.NET Core 3.1应用程序中使用log4Net,并尝试使用控制器使其与依赖项注入一起工作。我能够使用Asp.net core 如何使用依赖注入使Log4Net与ASP.NET Core 3.1一起工作?,asp.net-core,dependencies,log4net,code-injection,Asp.net Core,Dependencies,Log4net,Code Injection,我尝试在ASP.NET Core 3.1应用程序中使用log4Net,并尝试使用控制器使其与依赖项注入一起工作。我能够使用LogManager.GetLogger(type)成功地使用Log4Net。任何帮助都将不胜感激 下面是我现在用于日志记录的代码示例: public class HomeController : Controller { private static readonly log4net.ILog _log = LogManager.GetLogger(typeof(L
LogManager.GetLogger(type)
成功地使用Log4Net。任何帮助都将不胜感激
下面是我现在用于日志记录的代码示例:
public class HomeController : Controller
{
private static readonly log4net.ILog _log = LogManager.GetLogger(typeof(Logger));
public HomeController()
{
_log.Debug("Test");
}
}
要注入控制器的任何服务都必须在
Startup.ConfigureServices(IServiceCollection)
(Startup.cs)或Program.CreateHostBuilder(string[])
(Program.cs)中注册,通常在CreateDefaultBuilder
和ConfigurWebHostDefaults
之后注册
您可以使用以下方法注册服务:
公共静态IHostBuilder CreateHostBuilder(字符串[]args)=>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder=>/*…*/)
.ConfigureLogging(生成器=>
{//此处的配置:
builder.SetMinimumLevel(LogLevel.Trace);
builder.AddLog4Net(“log4net.config”);
});
然后,您可以使用Microsoft.Extensions.Logging.ILogger
(其中T
是要记录的类)进行注入,它将使用Log4Net:
公共类HomeController:控制器{
私有只读ILogger_日志;
//运行时DI会创建一个合适的记录器实例:
公共家庭控制器(ILogger日志)
{
_log=log;
_调试(“测试”);
}
}
有关更多信息,请参见。非常感谢。我知道我迟到了,但这真的帮了大忙。如果一篇帖子有帮助,你应该投它一票!这适用于网站上的任何地方:不要羞于投票好的、有用的内容。把它想象成向其他用户推荐它。我试过了。我不能,因为我还没有足够的声望点数。对不起,我忘了。