Using the Logger to Trace JDBC Driver Managers and Drivers

Both JDBC drivers and the DriverManager use the PrintWriter for logging/tracing. Using java.util.Logger as your logging/tracing tool allows you to take advantage of the Logging framework.

Create an adapter class to redirect the log messages to java.util.Logging.

// Adapter class to redirect the logging/tracing statements from the // PrintWriter to the Logger.public class JDBCLogWriter extends Writer{    private final Logger myLogger;    private final Level myLogLevel;    public JDBCLogWriter(Logger logger)    {        this(logger, Level.INFO);    }    // Initialize the log writer    public JDBCLogWriter(Logger logger, Level level)    {        myLogger = logger;        myLogLevel = level;    }    // Redirect the log to the logger.    @Override    public void write(char[] cbuf, int off, int len) throws IOException    {        myLogger.log(myLogLevel, new String(cbuf, off, len));    }    @Override    public void flush() throws IOException    {    }    @Override    public void close() throws IOException    {    }    public static void main(String[] args) throws Exception    {        // Set the log writer by using the JDBCLogWriter        DriverManager.setLogWriter(new PrintWriter(new JDBCLogWriter(            Logger.getLogger("database"))));        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");    }}
Share the Post:
Share on facebook
Share on twitter
Share on linkedin

Overview

Recent Articles: