private static Object getLoggerObject( ClassLoader loader, String log ) { if( log == null || log.isEmpty() ) return Reflection.invokeStaticMethod( loader, "org.apache.log4j.Logger", "getRootLogger", null, null ); return Reflection.invokeStaticMethod( loader, "org.apache.log4j.Logger", "getLogger", new Object[]{log}, new Class[]{String.class} ); } }
public static Object invokeStaticMethod( ClassLoader loader, String typeString, String methodName, Object[] parameters, Class[] parameterTypes ) { Class type = loadClass( loader, typeString ); return invokeStaticMethod( type, methodName, parameters, parameterTypes ); }
public static void setLogLevel( ClassLoader loader, String log, String level ) { Object loggerObject = getLoggerObject( loader, log ); Object levelObject = Reflection.invokeStaticMethod( loader, "org.apache.log4j.Level", "toLevel", new Object[]{level}, new Class[]{String.class} ); Reflection.invokeInstanceMethod( loggerObject, "setLevel", levelObject, levelObject.getClass() ); }