public void handle()

in src/main/java/org/apache/sling/commons/log/logback/internal/joran/AppenderRefModelHandlerWrapper.java [58:83]


    public void handle(@NotNull ModelInterpretationContext mic, @NotNull Model model) throws ModelHandlerException {
        // delegate to the original implementation
        super.handle(mic, model);

        // dig out which appenders were added which loggers
        AppenderRefModel appenderRefModel = (AppenderRefModel) model;
        String appenderName = mic.subst(appenderRefModel.getRef());
        @SuppressWarnings("unchecked")
        Map<String, Appender<ILoggingEvent>> appenderBag =
                (Map<String, Appender<ILoggingEvent>>) mic.getObjectMap().get(JoranConstants.APPENDER_BAG);
        Appender<ILoggingEvent> appender = appenderBag.get(appenderName);
        if (appender != null) {
            Object o = mic.peekObject();
            if (o instanceof AppenderAttachable) {
                @SuppressWarnings("unchecked")
                AppenderAttachable<ILoggingEvent> appenderAttachable = (AppenderAttachable<ILoggingEvent>) o;
                if (appenderAttachable instanceof Logger) {
                    appenderAttachable.addAppender(appender);

                    String loggerName = ((Logger) appenderAttachable).getName();
                    // inform the LogConfigManager about the appender reference
                    logConfigManager.addedAppenderRef(AppenderOrigin.JORAN, appenderName, loggerName);
                }
            }
        }
    }