当前位置:  开发笔记 > 编程语言 > 正文

消除log4net中的重复日志记录

如何解决《消除log4net中的重复日志记录》经验,为你挑选了2个好方法。

我有一个程序,可以对"myprogram"记录器进行许多log4net调用.它还调用其他代码,使log4net调用其他记录器.我想为"myprogram"捕获高于INFO的所有日志,并为其他所有内容捕获高于WARN的所有日志.这样,我就可以获得特定于我正在处理的任务的正在进行的工作消息,但仍然会通知支持代码中发生的潜在不良事件.我希望将其发送到Console和日志文件.

我有以下log4net配置:


    
        
        
        
    
    
        
        
        
    
    
        
            
        
        
    
    
        
            
        
        
        
        
        
        
        
        
    

这对我来说非常有意义:log> WARN for everything和> INFO for specific"myprogram"logger.

问题是我在Console和LogFile上都记录了两次 INFO消息.只有当我同时填充了元素元素时才会发生这种情况; 如果我删除任何一个,那么剩下的一个按预期工作.

我可以理解我是否正在获取WARN条目的双重记录(因为myprogram匹配"root"和"myprogram"),但它发生在INFO,即使ROOT(大概)设置为WARN.

我在这里做错了什么,或者这是一个log4net错误/歧义?



1> 小智..:

您正在重复,因为您告诉它两次记录消息.我不建议在这里使用可加性,因为您可能会遇到一些副作用,只需删除不必要的配置:


    
    
    


    

您不需要在logger myprogram中指明appender-ref,因为它将从根记录器继承它们; 如果再次指定它们,它将记录两次.



2> Eddie..:

尝试使用此更改,将可加性设置为false.


    
    
    


    
    
    


这是确保针对"myprogram"日志记录的所有消息都不会冒泡到根记录器的好方法.
推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有