package net.csdn.common.logging;
import net.csdn.common.logging.log4j.Log4jFactory;
/**
* BlogInfo: william
* Date: 11-9-1
* Time: 下午3:43
*/
public abstract class CSLoggerFactory {
private static volatile CSLoggerFactory defaultFactory = new Log4jFactory();
/**
* Changes the default factory.
*/
public static void setDefaultFactory(CSLoggerFactory defaultFactory) {
if (defaultFactory == null) {
throw new NullPointerException("defaultFactory");
}
CSLoggerFactory.defaultFactory = defaultFactory;
}
public static CSLogger getLogger(String prefix, String name) {
return defaultFactory.newInstance(prefix == null ? null : prefix.intern(), name.intern());
}
public static CSLogger getLogger(String name) {
return defaultFactory.newInstance(name.intern());
}
public CSLogger newInstance(String name) {
return newInstance(null, name);
}
protected abstract CSLogger newInstance(String prefix, String name);
}