Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java log4j自定义追加器不产生任何输出_Java_Logging_Log4j_Composition - Fatal编程技术网

Java log4j自定义追加器不产生任何输出

Java log4j自定义追加器不产生任何输出,java,logging,log4j,composition,Java,Logging,Log4j,Composition,我正在log4j中编写一个自定义appender,它使用composition包装另一个appender(并通过自定义appender路由appender的一些功能)。基本上,代码与此类似: public class CustomAppender extends AppenderSkeleton { private Appender target; @Override public void activateOptions() { super.acti

我正在log4j中编写一个自定义appender,它使用composition包装另一个appender(并通过自定义appender路由appender的一些功能)。基本上,代码与此类似:

public class CustomAppender extends AppenderSkeleton {
    private Appender target;

    @Override 
    public void activateOptions() {
        super.activateOptions();
        if (target == null) {
            errorHandler.error("Target is null");
        }
    }

    @Override 
    protected void append(LoggingEvent event) {
        if (target == null) {
            errorHandler.error("Target is null");
        } else {
            target.doAppend(this.processEvent(event));
        }
    }

    @Override 
    public void close() {
        if (target != null) target.close();
    }

    public Appender getTarget() {
        return target;
    }

    public void setTarget(Appender target) {
        this.target = target;
    }

    @Override 
    public boolean requiresLayout() {
        return target == null ? false : target.requiresLayout();
    }
}
我尝试在XML spring配置中设置记录器,如下所示:

...
<prop key="log4j.appender.APPLICATION">CustomAppender</prop>
<prop key="log4j.appender.APPLICATION.Target">org.apache.log4j.DailyRollingFileAppender</prop>
<prop key="log4j.appender.APPLICATION.Target.DatePattern">...</prop>
...
。。。
客户附加器
org.apache.log4j.dailrollingfileappender
...
...
对于
dailrollingfileappender
和log4j的各种其他设置,不会产生任何输出。但是,如果我为
log4j.appender.APPLICATION
a
dailrollingfileappender
创建一个类,并从每个键中删除关键字
Target.
,它就可以正常工作


我的班级设置有什么问题吗?我对这里的物业转让工作有误解吗?谢谢

我意识到这个问题要深入得多,事实上它与log4j的类有关。这就是字符串到类的所有实例化发生的地方,我似乎必须完全重写它,以获得更好的结果