Ninject 2,日志记录和WebForms

时间:2010-02-27 01:27:36

标签: log4net ninject

正式发布的Ninject 2不再包含对IFor for WebForms,MasterPages等WebForms特定功能的引用。它现在已分离为插件/扩展;在这种情况下是http://github.com/idavis/ninject.web扩展名。我的问题是,依赖于log4net(或NLog),我找不到任何关于如何将其配置为与我当前的log4net配置集成的文档,或者完全删除它(即将日志记录设置为null所以我不知道可以想象,有两个log4net配置正在运行。

http://markmail.org/message/7iv7nltanz6ve4ga#query:Error%20activating%20ILoggerFactory%20ninject.web+page:1+mid:6o4q6ee2js2k4gfp+state:results引用具有相同问题的其他人,但同样没有关于如何处理它的真实文档。我已经查看了所有内容的来源,并且必须遗漏一些明显的内容。

任何人都可以指出我正确的方向来处理这个问题的最佳方法,这样我仍然可以轻松地将Ninject与WebForms集成,但是没有运行无关的日志服务吗?或者不用担心Global.asax上的以下内容:

    protected override IKernel CreateKernel()
    {
        IKernel kernel =
        new StandardKernel(new SomeMyModule(), new Log4netModule());
        return kernel;
    }

我目前正通过

启动我在global.asax中的log4net配置
 private readonly static ILog Log = LogManager.GetLogger(typeof(Global));:

1 个答案:

答案 0 :(得分:3)

虽然Ninject.Web具有ILogger属性,但它不会记录任何内容。

如果要完全禁用Ninject.Extensions.Logging,请创建并绑定ILoggerFactory的实现,该实现从所有方法返回null。

或者如果您想使用log4net启用它,请从ninject.org获取Ninject.Extensions.Logging并从您的项目中引用Ninject.Extensions.Logging.Log4net。它将由Ninject 2.0自动加载。

如果您从源代码构建Ninject.Web,则可以通过以下方式删除日志记录扩展名:

  • 删除对该程序集的引用
  • 从包含它的5个类中删除ILogger成员
相关问题