@Override
protected void log(Level level, Object... message) {
if (level.compareTo(currentLevel()) < 0)
return;
TextBuilder tmp = new TextBuilder();
Throwable exception = null;
for (Object pfx : prefix) {
tmp.append(pfx); // Uses TextContext for formatting.
}
for (Object obj : message) {
if ((exception == null) && (obj instanceof Throwable)) {
exception = (Throwable) obj;
} else {
tmp.append(obj); // Uses TextContext for formatting.
}
}
for (Object sfx : suffix) {
tmp.append(sfx); // Uses TextContext for formatting.
}
int osgiLevel = TO_OSGI_LEVEL[level.ordinal()];
String msg = tmp.toString();
Object[] logServices = OSGiServices.getLogServices();
for (Object logService : logServices) {
((LogService)logService).log(osgiLevel, msg, exception);
}
}