package org.jdbcdslog; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class LogUtils { static Logger logger = LoggerFactory.getLogger(LogUtils.class); public static void handleException(Throwable e, Logger l, StringBuffer msg) throws Throwable { if(e instanceof InvocationTargetException) { Throwable t = ((InvocationTargetException)e).getTargetException(); if(l.isErrorEnabled()) l.error(msg + " throws exception: " + t.getClass().getName() + ": " + t.getMessage(), t); throw t; } else { if(l.isErrorEnabled()) l.error(msg + " throws exception: " + e.getClass().getName() + ": " + e.getMessage(), e); throw e; } } public static StringBuffer createLogEntry(Method method, Object sql, String parameters, String namedParameters) { String methodName = "createLogEntry() "; if(logger.isDebugEnabled()) logger.debug(methodName); StringBuffer s = new StringBuffer(method.getDeclaringClass().getName()) .append(".").append(method.getName()); s.append(" "); if(sql != null) s.append(sql); if(parameters != null) { s.append(" parameters: "); s.append(parameters); } if(namedParameters != null) { s.append(" named parameters: "); s.append(namedParameters); } return s; } public static String sqlValueToString(Object o) { if(o == null) return "null"; if(o instanceof String) return "'" + o.toString() + "'"; else return o.toString(); } }