热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Log4j2的FailoverAppender错误:appender故障转移没有与元素故障转移匹配的参数

如何解决《Log4j2的FailoverAppender错误:appender故障转移没有与元素故障转移匹配的参数》经验,为你挑选了1个好方法。

当我使用log4j 2.1编译我的spring 3.2.9 web应用程序时,控制台中会出现此错误:

2015-02-02 12:08:25,213 ERROR appender Failover has no parameter that matches element Failovers

我的理解是"故障转移"元素中不存在元素"故障转移",对吧?为什么会这样?我没有看到什么错,因为我有与log4j2手册相同的配置.

我在log4j2.xml中有这个配置:



    
        
            
                [%d{ISO8601}] %c [%C{1}] - %p: %m%n
            
        

        
        

        
            
                [%d{ISO8601}] [%c] - %p: %m%n
            
            
                
            
        

        
            
                
            
             
    

    
        
            
            
        

        
            
        

        
            
            
        

        
            
        
    

谢谢您的帮助.



1> Robin Coe..:

我在调试时看到的是调用PluginBuilder#verifyNodeChildrenUsed()方法,您可以预期,验证Node的子元素是否正确.如下所述,此方法名称与行为不匹配.

在故障转移appender的情况下,插件类型是:(顺便说一下,"isDeferChildren"中的额外"=="就在toString()实现中,并且不会影响测试.)

PluginType [pluginClass=class org.apache.logging.log4j.core.appender.FailoversPlugin, key=failovers, elementName=failovers, isObjectPrintable=false, isDeferChildren==false, category=core]

这种方法的实现:

private void verifyNodeChildrenUsed() {
    final List children = node.getChildren();
    if (!(pluginType.isDeferChildren() || children.isEmpty())) {
        for (final Node child : children) {
            final String nodeType = node.getType().getElementName();
            final String start = nodeType.equals(node.getName()) ? node.getName() : nodeType + ' ' + node.getName();
            LOGGER.error("{} has no parameter that matches element {}", start, child.getName());
        }
   }
}

当nodeType是FailoversPlugin类(见上文)时,节点类型为"appender",但名称为"Failovers".因此,相等的测试产生字符串"appender Failovers".

我没有完全挖掘的是为什么调用这个方法,如果节点不为空并且延迟属性为false,则必须显示错误消息.在我看来,这里的逻辑依赖于堆栈上的东西,并且通过这种追踪是很麻烦的.

我真正想做的是问开发人员负责什么意图,因为我不清楚行为是否正确.嗯,显然在这种情况下是这样的.:S


推荐阅读
author-avatar
Liu_y_菁
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有