in src/main/java/org/apache/sling/commons/log/logback/internal/LogConfigManager.java [1666:1704]
public LoggerStateContext determineLoggerState() {
final List<Logger> loggers = loggerContext.getLoggerList();
final LoggerStateContext ctx = new LoggerStateContext(loggers, packageInfoCollector);
// Distinguish between Logger configured via
// 1. OSGi Config - The ones configured via ConfigAdmin
// 2. Other means - Configured via Logback config or any other means
for (LogConfig lc : getLogConfigs()) {
for (String category : lc.getCategories()) {
ctx.osgiConfiguredLoggers.put(category, lc);
}
}
for (Logger targetLogger : loggers) {
boolean hasOnlySlingRollingAppenders = true;
Iterator<Appender<ILoggingEvent>> itr = targetLogger.iteratorForAppenders();
while (itr.hasNext()) {
Appender<ILoggingEvent> a = itr.next();
if (a.getName() != null && !ctx.appenders.containsKey(a.getName())) {
ctx.appenders.put(a.getName(), a);
}
if (!(a instanceof SlingRollingFileAppender)) {
hasOnlySlingRollingAppenders = false;
}
}
if (targetLogger.getLevel() == null) {
continue;
}
boolean configuredViaOSGiConfig = ctx.osgiConfiguredLoggers.containsKey(targetLogger.getName());
if (!configuredViaOSGiConfig || !hasOnlySlingRollingAppenders) {
ctx.nonOSgiConfiguredLoggers.add(targetLogger);
}
}
return ctx;
}