Asp.net 在WebForms应用程序中将log4net与Ninject日志记录扩展一起使用
经过一番努力,我终于找到了一个可以工作的ASP.NETWebForms应用程序,它使用Ninject日志扩展和log4net作为日志框架。(基础课程学分到)。 但我有一些关于如何继续的问题 首先,我需要将ILogger属性公开,因为如果它是私有的或受保护的,它将保持为空。 现在我有了这个:Asp.net 在WebForms应用程序中将log4net与Ninject日志记录扩展一起使用,asp.net,logging,ninject-extensions,Asp.net,Logging,Ninject Extensions,经过一番努力,我终于找到了一个可以工作的ASP.NETWebForms应用程序,它使用Ninject日志扩展和log4net作为日志框架。(基础课程学分到)。 但我有一些关于如何继续的问题 首先,我需要将ILogger属性公开,因为如果它是私有的或受保护的,它将保持为空。 现在我有了这个: [Inject] protected ILogger _logger { get; set; } 而不是: private static readonly ILog Logger = LogManager.
[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");
}
但这当然会带走我刚才添加的所有抽象内容。。
因此,我正在寻找其他人在这个场景中可能拥有的一些经验/最佳实践
附加问题:我已经将log4net升级到1.2.11.0,这是NuGet中的当前版本,现在Ninject.Logging.log4net被破坏了,因为它需要1.2.10.0版。。。有办法解决这个问题吗
附加问题:我已经将log4net升级到1.2.11.0,这是
NuGet中的当前版本,现在Ninject.Logging.log4net已损坏
因为它期望版本1.2.10.0。。。有办法解决这个问题吗
您是否尝试用Packages.config文件中的[xx]修复允许的版本
<package id="log4net" version="1.2.10" allowedVersions="[1.2.10]" /> />
/>
它将阻止下次更新升级到1.2.11或更高版本
我不知道该如何使用这个。。我一直使用版本1.2.11。我编辑我的答案,必须修改allowedVersion属性。您必须首先卸载1.2.11版本。然后更新packages.config文件,并运行install package命令。