in src/main/java/org/apache/sling/commons/log/logback/internal/LogConfigManager.java [1223:1249]
protected void maybeDetachAppender(
@NotNull AppenderOrigin origin, @NotNull String appenderName, @NotNull Logger targetLogger) {
Appender<ILoggingEvent> appender = targetLogger.getAppender(appenderName);
if (appender != null) {
String loggerName = targetLogger.getName();
addInfo(String.format("detaching appender %s for %s", appenderName, loggerName));
targetLogger.detachAppender(appenderName);
// notify the filter tracker about the appender so it
// possibly detach the filter as well
if (filterTracker != null) {
filterTracker.detachedAppender(appender);
}
// forget what loggers we detached the appender from
synchronized (appendersByOrigin) {
Map<String, Set<String>> map = appendersByOrigin.getOrDefault(origin, Collections.emptyMap());
Set<String> loggerNamesSet = map.get(appenderName);
if (loggerNamesSet != null) {
loggerNamesSet.remove(loggerName);
if (loggerNamesSet.isEmpty()) {
map.remove(appenderName);
}
}
}
}
}