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);
}
}
}
}