package org.radargun.logging;
/**
* Common wrapper for any logging system used for logging.
*
* @author Radim Vansa <rvansa@redhat.com>
*/
public abstract class LogFactory {
private static final boolean IS_LOG4J_AVAILABLE;
private static final boolean IS_LOG4J2_AVAILABLE;
static {
IS_LOG4J_AVAILABLE = isAvailable("org.apache.log4j.Logger");
IS_LOG4J2_AVAILABLE = isAvailable("org.apache.logging.log4j.core.Logger");
}
private static boolean isAvailable(String classname) {
try {
return Class.forName(classname) != null;
} catch (ClassNotFoundException cnfe) {
return false;
}
}
public static Log getLog(Class<?> clazz) {
if (IS_LOG4J2_AVAILABLE) return new Log4j2Log(clazz);
if (IS_LOG4J_AVAILABLE) return new Log4jLog(clazz);
return new StdOutLog(clazz.getName());
}
public static Log getLog(String className) {
if (IS_LOG4J2_AVAILABLE) return new Log4j2Log(className);
if (IS_LOG4J_AVAILABLE) return new Log4jLog(className);
return new StdOutLog(className);
}
}