Log4j-这种配置可能吗?

Log4j-这种配置可能吗?,log4j,Log4j,我有两个附录-A,B。 默认情况下,我希望所有消息都转到B。如果消息的级别>=错误,或者它来自com.mycop.*记录器,我希望它转到A 我试图弄清楚这种配置在log4j1.2中是否可行。到目前为止似乎不是这样 编辑:为了澄清,这里有一个完全相同的关于回登录的问题,可以使用过滤器来完成: public class MyLogFilter extends Filter { @Override public int decide(LoggingEvent loggingEvent)

我有两个附录-A,B。 默认情况下,我希望所有消息都转到B。如果消息的级别>=错误,或者它来自com.mycop.*记录器,我希望它转到A

我试图弄清楚这种配置在log4j1.2中是否可行。到目前为止似乎不是这样


编辑:为了澄清,这里有一个完全相同的关于回登录的问题,可以使用过滤器来完成:

public class MyLogFilter extends Filter {
    @Override
    public int decide(LoggingEvent loggingEvent) {
        if (!loggingEvent.getLevel().isGreaterOrEqual(Level.ERROR) &&
                !loggingEvent.getLoggerName().startsWith("com.mycomp")) {
            return DENY;
        }

        return NEUTRAL;
    }
}
和配置类似

log4j.rootLogger=(INFO, A, B);
log4j.logger.com.mycomp=(INFO, A);
log4j.appenders.A.filter.a=com.mycomp.MyLogFilter;

不幸的是,

是的。您是对的,将同一个包设置为不同的错误级别/追加器会覆盖另一个包。因此,我建议以编程方式添加appender。