in src/main/java/org/apache/sling/commons/log/logback/internal/LogbackManager.java [139:187]
public LogbackManager(BundleContext bundleContext) throws InvalidSyntaxException {
this.bundleContext = bundleContext;
setLoggerContext((LoggerContext) LoggerFactory.getILoggerFactory());
this.log = LoggerFactory.getLogger(getClass());
this.rootDir = getRootDir(bundleContext);
this.debug = Boolean.parseBoolean(bundleContext.getProperty(DEBUG));
this.bridgeHandlerInstalled = installSlf4jBridgeHandler(bundleContext);
this.appenderTracker = new AppenderTracker(bundleContext, getLoggerContext());
this.configSourceTracker = new ConfigSourceTracker(bundleContext, this);
this.filterTracker = new FilterTracker(bundleContext,this);
this.turboFilterTracker = new TurboFilterTracker(bundleContext,getLoggerContext());
getLoggerContext().setName(contextName);
this.logConfigManager = new LogConfigManager(getLoggerContext(), bundleContext, rootDir, this);
resetListeners.add(new LevelChangePropagatorChecker());
resetListeners.add(logConfigManager);
resetListeners.add(appenderTracker);
resetListeners.add(configSourceTracker);
resetListeners.add(filterTracker);
resetListeners.add(turboFilterTracker);
resetListeners.add(new RootLoggerListener()); //Should be invoked at last
//Record trackers for shutdown later
serviceTrackers.add(appenderTracker);
serviceTrackers.add(configSourceTracker);
serviceTrackers.add(filterTracker);
serviceTrackers.add(turboFilterTracker);
this.filterTracker.open();
this.turboFilterTracker.open();
getLoggerContext().addListener(osgiIntegrationListener);
registerWebConsoleSupport();
registerEventHandler();
// initial configuration must be done synchronously (aka immediately)
addInfo("LogbackManager: BEGIN initial configuration");
failSafeConfigure();
addInfo("LogbackManager: END initialconfiguration");
// now open the gate for regular configuration
started = true;
//Now check once if any other config was added while we were starting
logConfigManager.checkForNewConfigsWhileStarting(getLoggerContext());
}