当前位置:  开发笔记 > 后端 > 正文

如何在停止记录时对log4net进行故障排除

如何解决《如何在停止记录时对log4net进行故障排除》经验,为你挑选了2个好方法。

似乎Log4Net因为不明显的原因而无声地关闭,我不知道如何解决它.我的预感是特定的appender在特定的日志消息上失败并且似乎关闭了整个堆栈.

有没有办法让Log4Net抛出一个异常(至少在我们的调试阶段),而不是暂时关闭服务.



1> Eric Pohl..:

扩展前一个答案 -

要为log4net.Internal.Debug跟踪添加跟踪侦听器,请将其添加到您的应用程序配置:

  
    
      
        
      
    
  

将上面的initializeData属性值替换为所需的日志文件路径.确保应用程序或ASP.NET服务器进程有权写入此文件.

您可以做的另一件事是检查启动时从log4net配置返回的消息.从log4net 1.2.11版开始,XmlConfigurator.Configure()方法返回一个ICollection,其中包含列出配置过程中遇到的问题的字符串.

所以如果你有这样的东西:

XmlConfigurator.Configure();

改为

ICollection configMessages = XmlConfigurator.Configure();

并在调试器中检查configMessages,或者将它们打印出来,例如

foreach (string msg in configMessages)
{
   Console.WriteLine(msg);
}

如果所有其他方法都失败了,请下载log4net源代码,将项目添加到解决方案中,然后引用项目而不是log4net.dll.现在您可以进入调试器中的log4net调用.



2> Andy White..:

我认为你可以在app.config/web.config的appSettings部分放置一个配置值来打开log4net中的内部调试语句:


    

这将让您深入了解log4net可能吞咽的任何错误.


经过一些挖掘之后(按照指针启用内部调试,看起来像启用System.Diagnostics.Trace的监听器也是必需的.
还应该注意,appSettings需要在system.diagnostics属性之前.
推荐阅读
yzh148448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有