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 Apache Log4j via reflection. We use reflection so we can avoid the dependency.

Author(s):
graywatson
 
 public class Log4jLog implements Log {
 
 	private Object logger;
 
 	private static Method getLoggerMethod;
 	private static Method isEnabledForMethod;
 	private static Object traceLevel;
 	private static Object debugLevel;
 	private static Object infoLevel;
 	private static Object warningLevel;
 	private static Object errorLevel;
 	private static Object fatalLevel;
 
 	private static Method logMethod;
 	private static Method logThrowableMethod;
 
 	public Log4jLog(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) {
 		return isEnabledFor(levelToJavaLevel(level));
 	}
 
 	public void log(Level levelString msg) {
 		logMessage(levelToJavaLevel(level), msg);
 	}
 
 	public void log(Level levelString msgThrowable t) {
 		logMessage(levelToJavaLevel(level), msgt);
 	}
 
 	private static void findMethods() {
 		Class<?> clazz;
 		try {
 			clazz = Class.forName("org.apache.log4j.Logger");
 		} catch (ClassNotFoundException e) {
 			// oh well, bail
 			return;
 		}
 		 = getMethod(clazz"getLogger"String.class);
 
 		Class<?> priorityClazz;
 		try {
 			priorityClazz = Class.forName("org.apache.log4j.Priority");
 		} catch (ClassNotFoundException e) {
 			// oh well, bail
 			return;
 		}
 		 = getMethod(clazz"isEnabledFor"priorityClazz);
 		Class<?> levelClazz;
 		try {
 			levelClazz = Class.forName("org.apache.log4j.Level");
 		} catch (ClassNotFoundException e) {
 			// oh well, bail
 			return;
 		}
 		 = getLevelField(levelClazz"TRACE");
 		 = getLevelField(levelClazz"DEBUG");
 		 = getLevelField(levelClazz"INFO");
 		 = getLevelField(levelClazz"WARN");
 		 = getLevelField(levelClazz"ERROR");
 		 = getLevelField(levelClazz"FATAL");
 
 		 = getMethod(clazz"log"priorityClazzObject.class);
 		 = getMethod(clazz"log"priorityClazzObject.classThrowable.class);
 	}
 
 	private boolean isEnabledFor(Object level) {
 		if ( != null) {
 			try {
 				return (Boolean.invoke(level);
 			} catch (Exception e) {
 				// oh well, return false
 			}
 		}
 		return false;
 	}
 
	private void logMessage(Object levelString message) {
		if ( != null &&  != null) {
			try {
				.invoke(levelmessage);
catch (Exception e) {
				// oh well, just skip it
			}
		}
	}
	private void logMessage(Object levelString messageThrowable t) {
		if ( != null &&  != null) {
			try {
				.invoke(levelmessage, (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;
		}
	}
	private static Object getLevelField(Class<?> clazzString fieldName) {
		try {
			return clazz.getField(fieldName).get(null);
catch (Exception e) {
			return null;
		}
	}
		switch (level) {
			case  :
				return ;
			case  :
				return ;
			case  :
				return ;
			case  :
				return ;
			case  :
				return ;
			case  :
				return ;
			default :
				return ;
		}
	}
New to GrepCode? Check out our FAQ X