aQute.bnd.main.ReporterLogger Maven / Gradle / Ivy
The newest version!
package aQute.bnd.main;
import org.osgi.framework.ServiceReference;
import org.osgi.service.log.LogService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import aQute.service.reporter.Reporter;
public class ReporterLogger implements LogService {
private final static Logger logger = LoggerFactory.getLogger(ReporterLogger.class);
private Reporter reporter;
private int level;
public ReporterLogger(Reporter reporter, int level) {
this.reporter = reporter;
this.level = level;
}
@Override
public void log(int level, String message) {
if (level > this.level)
return;
switch (level) {
case LogService.LOG_ERROR :
reporter.error("%s", message);
return;
case LogService.LOG_WARNING :
reporter.warning("%s", message);
return;
case LogService.LOG_INFO :
logger.info("{}", message);
return;
default :
logger.debug("{}", message);
return;
}
}
@Override
public void log(int level, String message, Throwable exception) {
if (level > this.level)
return;
switch (level) {
case LogService.LOG_ERROR :
reporter.error("%s: %s", exception, message);
return;
case LogService.LOG_WARNING :
reporter.warning("%s: %s", exception, message);
return;
case LogService.LOG_INFO :
logger.info("{}", message, exception);
return;
default :
logger.debug("{}", message, exception);
return;
}
}
@Override
public void log(ServiceReference sr, int level, String message) {
switch (level) {
case LogService.LOG_ERROR :
reporter.error("%s %s", sr, message);
return;
case LogService.LOG_WARNING :
reporter.warning("%s: %s", sr, message);
return;
case LogService.LOG_INFO :
logger.info("{}: {}", sr, message);
return;
default :
logger.debug("{}: {}", sr, message);
return;
}
}
@Override
public void log(ServiceReference sr, int level, String message, Throwable exception) {
switch (level) {
case LogService.LOG_ERROR :
reporter.error("%s:%s: %s", sr, exception, message);
return;
case LogService.LOG_WARNING :
reporter.warning("%s:%s: %s", sr, exception, message);
return;
case LogService.LOG_INFO :
logger.info("{}: {}", sr, message, exception);
return;
default :
logger.debug("{}: {}", sr, message, exception);
return;
}
}
}