经过一番努力之后,我设法使用了Ninject日志扩展和log4net作为日志框架的工作ASP.NET webforms应用程序。 (学分基本为this blog)。 但我对如何继续有一些疑问。在WebForms应用程序中使用带Ninject日志扩展的log4net
首先,我需要公开ILogger属性,因为如果它是私有的或受保护的,它仍然为空。 所以现在我有这样的:
[Inject]
protected ILogger _logger { get; set; }
相反的:
private static readonly ILog Logger = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
我可以住在一起,但它似乎很奇怪。
另一件事是log4net用来填充当前上下文的ThreadContext。我仍然可以使用它像这样
using (ThreadContext.Stacks["NDC"].Push(MethodBase.GetCurrentMethod().Name))
{
_logger.Info("test");
}
但offcourse夺的一切,我只是增加了.. 于是我找了其他人可能有这种情况的一些经验/最佳实践的抽象。
附加问题:我已经将log4net升级到了NuGet中的当前版本1.2.11.0,现在Ninject.Logging.log4net被破坏,因为它期望版本1.2.10.0 ...有没有办法解决这个问题?
我不知道如何使用这个..我不断地结束与版本1.2.11。 – Hanno 2012-03-21 07:53:06
我编辑我的答案,它是必须修改的allowedVersion属性。首先你必须先卸载1.2.11版本。然后更新你的packages.config文件,并运行install-package命令。 – user484189 2012-03-22 11:06:10