@Override
    @DefaultClass(MDCBasedDiscriminator.class)
    public void setDiscriminator(Discriminator<ILoggingEvent> discriminator) {
        super.setDiscriminator(discriminator);
    }
@Disabled
    @Test
    public void programmicSiftingAppender() {

        SiftingAppender connectorAppender = new SiftingAppender();
        connectorAppender.setContext(loggerContext);
        connectorAppender.setName("SIFTING_APPENDER");

        MDCBasedDiscriminator discriminator = new MDCBasedDiscriminator();
        discriminator.setKey("SKEY");
        discriminator.setDefaultValue("DEF_KEY");
        discriminator.start();
        connectorAppender.setDiscriminator(discriminator);

        connectorAppender.setAppenderFactory(new AppenderFactory<ILoggingEvent>() {

            @Override
            public Appender<ILoggingEvent> buildAppender(Context context, String discriminatingValue) throws JoranException {

                RollingFileAppender<ILoggingEvent> appender = new RollingFileAppender<ILoggingEvent>();
                appender.setName("ROLLING_APPENDER_" + discriminatingValue);
                appender.setContext(context);
                appender.setFile("/var/logs/active_" + discriminatingValue + ".log");

                TimeBasedRollingPolicy<ILoggingEvent> policy = new TimeBasedRollingPolicy<ILoggingEvent>();
                policy.setContext(context);
                policy.setMaxHistory(365);
                policy.setFileNamePattern(CoreTestConstants.OUTPUT_DIR_PREFIX + "/logback1127/" + discriminatingValue + "_%d{yyyy_MM_dd}_%i.log");
                policy.setParent(appender);
                policy.setCleanHistoryOnStart(true);

                SizeAndTimeBasedFNATP<ILoggingEvent> innerpolicy = new SizeAndTimeBasedFNATP<ILoggingEvent>();
                innerpolicy.setContext(context);
                innerpolicy.setMaxFileSize(FileSize.valueOf("5KB"));
                innerpolicy.setTimeBasedRollingPolicy(policy);

                policy.setTimeBasedFileNamingAndTriggeringPolicy(innerpolicy);
                policy.start();
                appender.setRollingPolicy(policy);

                PatternLayoutEncoder pl = new PatternLayoutEncoder();
                pl.setContext(context);
                pl.setPattern("%d{yyyy/MM/dd'T'HH:mm:ss} %-5level - %msg\n");

                pl.start();
                appender.setEncoder(pl);

                appender.start();
                return appender;
            }
        });
        connectorAppender.start();

        ch.qos.logback.classic.Logger logger = loggerContext.getLogger("org.test");
        logger.addAppender(connectorAppender);
        logger.setLevel(Level.DEBUG);
        logger.setAdditive(false);

        logbackMDCAdapter.put("SKEY", "K1");
        logger.info("bla1");
        logbackMDCAdapter.clear();

        logbackMDCAdapter.put("SKEY", "K2");
        logger.info("bla2");
        logbackMDCAdapter.clear();

        //StatusPrinter.print(loggerContext);

    }