Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package com.j256.ormlite.logger;
  
Class which implements our com.j256.ormlite.logger.Log interface by delegating to the Apache commons logging classes via reflection. We use reflection so we can avoid the dependency. Yes we are delegating to a delegating class.

Author(s):
graywatson
 
 public class CommonsLoggingLog implements Log {
 
 	private Object log;
 
 	private static Method getLogMethod;
 	private static Method isTraceEnabledMethod;
 	private static Method isDebugEnabledMethod;
 	private static Method isInfoEnabledMethod;
 	private static Method isWarnEnabledMethod;
 	private static Method isErrorEnabledMethod;
 	private static Method isFatalEnabledMethod;
 
 	private static Method traceMethod;
 	private static Method traceThrowableMethod;
 	private static Method debugMethod;
 	private static Method debugThrowableMethod;
 	private static Method infoMethod;
 	private static Method infoThrowableMethod;
 	private static Method warningMethod;
 	private static Method warningThrowableMethod;
 	private static Method errorMethod;
 	private static Method errorThrowableMethod;
 	private static Method fatalMethod;
 	private static Method fatalThrowableMethod;
 
 	public CommonsLoggingLog(String className) {
 		if ( == null) {
 		}
 		if ( != null) {
 			try {
 				 = .invoke(nullclassName);
 			} catch (Exception e) {
 				// oh well, ignore the rest I guess
 				 = null;
 			}
 		}
 	}
 
 	public boolean isLevelEnabled(Level level) {
 		switch (level) {
 			case  :
 			case  :
 			case  :
 			case  :
 			case  :
 			case  :
 			default :
 		}
 	}
 
 	public void log(Level levelString msg) {
 		switch (level) {
 			case  :
 				break;
 			case  :
 				break;
 			case  :
 				break;
 			case  :
 				break;
 			case  :
 				break;
 			case  :
 				break;
 			default :
 				break;
 		}
 	}
 
 	public void log(Level levelString msgThrowable t) {
 		switch (level) {
 			case  :
				break;
			case  :
				break;
			case  :
				break;
			case  :
				break;
			case  :
				break;
			case  :
				break;
			default :
				break;
		}
	}
	private static void findMethods() {
		Class<?> clazz;
		try {
			clazz = Class.forName("org.apache.commons.logging.LogFactory");
catch (ClassNotFoundException e) {
			// oh well, bail
			return;
		}
		 = getMethod(clazz"getLog"String.class);
		try {
			clazz = Class.forName("org.apache.commons.logging.Log");
catch (ClassNotFoundException e) {
			// oh well, bail
			return;
		}
		 = getMethod(clazz"isTraceEnabled");
		 = getMethod(clazz"isDebugEnabled");
		 = getMethod(clazz"isInfoEnabled");
		 = getMethod(clazz"isWarnEnabled");
		 = getMethod(clazz"isErrorEnabled");
		 = getMethod(clazz"isFatalEnabled");
		 = getMethod(clazz"trace"Object.class);
		 = getMethod(clazz"trace"Object.classThrowable.class);
		 = getMethod(clazz"debug"Object.class);
		 = getMethod(clazz"debug"Object.classThrowable.class);
		 = getMethod(clazz"info"Object.class);
		 = getMethod(clazz"info"Object.classThrowable.class);
		 = getMethod(clazz"warn"Object.class);
		 = getMethod(clazz"warn"Object.classThrowable.class);
		 = getMethod(clazz"error"Object.class);
		 = getMethod(clazz"error"Object.classThrowable.class);
		 = getMethod(clazz"fatal"Object.class);
		 = getMethod(clazz"fatal"Object.classThrowable.class);
	}
	private boolean isLevelEnabled(Method method) {
		if ( != null) {
			try {
				return (Booleanmethod.invoke();
catch (Exception e) {
				// oh well
			}
		}
		return false;
	}
	private void logMessage(Method methodString message) {
		if ( != null) {
			try {
				method.invoke(message);
catch (Exception e) {
				// oh well, just skip it
			}
		}
	}
	private void logMessage(Method methodString messageThrowable t) {
		if ( != null) {
			try {
				method.invoke(message, (Throwablet);
catch (Exception e) {
				// oh well, just skip it
			}
		}
	}
	private static Method getMethod(Class<?> clazzString methodNameClass<?>... parameterTypes) {
		try {
			return clazz.getMethod(methodNameparameterTypes);
catch (Exception e) {
			return null;
		}
	}
New to GrepCode? Check out our FAQ X