in src/main/java/org/apache/sling/launchpad/base/impl/DefaultStartupHandler.java [318:356]
private void log(final ServiceReference<?> sRef, final int level, final String msg, final Throwable t) {
boolean loggedWithService = false;
if ( this.logService == null ) {
final ServiceReference<?> ref = this.bundleContext.getServiceReference("org.osgi.service.log.LogService");
if ( ref != null ) {
final Object ls = this.bundleContext.getService(ref);
if ( ls != null ) {
final Class<?>[] formalParams = {
ServiceReference.class,
Integer.TYPE,
String.class,
Throwable.class
};
try {
final Method logMethod = ls.getClass().getMethod("log", formalParams);
logMethod.setAccessible(true);
logService = new Object[] { ls, logMethod };
} catch (final NoSuchMethodException ex) {
// no need to log
}
}
}
}
if ( this.logService != null ) {
final Object[] params = {sRef, new Integer(level), msg, t};
try {
((Method) this.logService[1]).invoke(this.logService[0], params);
loggedWithService = true;
} catch (final InvocationTargetException ex) {
// no need to log
} catch (final IllegalAccessException ex) {
// no need to log
}
}
if ( !loggedWithService ) {
logger.log(level, msg);
}
}