package osgiutils.services;
import org.osgi.service.log.LogService;
/**
* Easier logging to the OGSi LogService or the standard output/error streams.
*
* @author <a href="mailto:phil.kursawe@gmail.com">Philipp Kursawe</a>
*
*/
public final class LogHelper {
public static void debug(final String message, final Object... args) {
log(LogService.LOG_DEBUG, null, message, args);
}
public static void info(final String message, final Object... args) {
log(LogService.LOG_INFO, null, message, args);
}
public static void warn(final String message, final Object... args) {
log(LogService.LOG_WARNING, null, message, args);
}
public static void error(final Throwable t, final String message,
final Object... args) {
log(LogService.LOG_ERROR, t, message, args);
}
public static void log(final int level, final Throwable t,
final String message, final Object... args) {
final String text = String.format(message, args);
Services.run(LogService.class, new SimpleServiceRunnable<LogService>() {
@Override
protected void runWithService(final LogService service) {
service.log(level, text, t);
}
@Override
protected void runWithoutService() {
if (level == LogService.LOG_ERROR) {
if (t != null) {
t.printStackTrace(System.err);
} else {
System.err.println(text);
}
} else {
System.out.println(text);
}
}
});
}
private LogHelper() {
}
}