in src/main/java/org/apache/sling/commons/log/logback/internal/LogbackManager.java [653:696]
public LoggerStateContext determineLoggerState() {
final List<Logger> loggers = getLoggerContext().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 : logConfigManager.getLogConfigs()) {
for (String category : lc.getCategories()) {
ctx.osgiConfiguredLoggers.put(category, lc);
}
}
for (Logger logger : loggers) {
boolean hasOnlySlingRollingAppenders = true;
Iterator<Appender<ILoggingEvent>> itr = logger.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(logger.getLevel() == null){
continue;
}
boolean configuredViaOSGiConfig =
ctx.osgiConfiguredLoggers.containsKey(logger.getName());
if (!configuredViaOSGiConfig
|| (configuredViaOSGiConfig && !hasOnlySlingRollingAppenders))
{
ctx.nonOSgiConfiguredLoggers.add(logger);
}
}
return ctx;
}