ILogger不需要配置
本文关键字:配置 不需要 ILogger | 更新日期: 2023-09-27 18:31:26
我正在尝试使用 NLog (v2.0) 的 Ninject 的日志记录扩展 (v3.0),从我所读到的内容来看,我不应该配置任何东西,事情就像自动魔法一样,我需要做的就是在我需要的地方声明一个ILogger
依赖项。
我保留了我已经拥有的nlog.config
文件,并删除了所有创建记录器的代码,而是ILogger
放入类的构造函数中。
我在作曲根部得到了一个ActivationException
,...Ninject无法解决ILogger
。
我错过了什么?
我基本上可以归结为:
public static void Main(string[] args)
{
// nothing special here, binds IMyApp to MyApp.
using (var kernel = new StandardKernel(new NinjectConfig()))
{
var app = kernel.Get<IMyApp>(); // MyApp has a ILogger dependency **blows up here**
app.Run(args);
}
}
这是一个控制台应用程序,值得...日志记录扩展应该像这样工作吗?
文档说:
确保在请求类型实例之前让内核加载新的 Log4NetModule 或 NLogModule
但是如果我这样做:
using (var kernel = new StandardKernel(new NLogModule(), new NinjectConfig()))
{
...
。ReSharper不知道NLogModule
是什么。
下载 nuget 包Ninject.Extensions.Logging
是不够的。
您还需要下载 nuget 包 for Ninject.Extensions.Logging.nlog2
,其中包含绑定ILogger
接口所需的NLogModule
类。
还有一个可用的 nuget 包用于 log4net 日志记录。
这:
var kernel = new StandardKernel(new NinjectConfig())
是使一切正常工作所需的全部内容 - 无需显式加载new NLogModule()
.