package com.m11n.jdbc.ssh.util; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.Writer; /** * Funnels Derby log outputs into an SLF4J logger. This current implementation logs * all errors at the `ERROR` threshold. */ public class Slf4jDerbyBridge { private static Logger logger = LoggerFactory.getLogger(Slf4jDerbyBridge.class); private Slf4jDerbyBridge() { } /** * A basic adapter that funnels Derby's logs through an SLF4J logger. */ public static final class LoggingWriter extends Writer { @Override public void write(final char[] buf, final int off, final int len) { // skip empty lines. if (len > 1) { String message = new String(buf, off, len); logger.trace(message); } } @Override public void flush() { // noop. } @Override public void close() { // noop. } } public static void setLogger(Logger log) { logger = log; } public static Writer bridge() { return new LoggingWriter(); } }