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是什么。

ILogger不需要配置

下载 nuget 包Ninject.Extensions.Logging是不够的。

您还需要下载 nuget 包 for Ninject.Extensions.Logging.nlog2 ,其中包含绑定ILogger接口所需的NLogModule类。

还有一个可用的 nuget 包用于 log4net 日志记录。

这:

var kernel = new StandardKernel(new NinjectConfig())

是使一切正常工作所需的全部内容 - 无需显式加载new NLogModule().