packagecom.ycl.core.common;importjava.util.HashMap;importjava.util.Map;importorg.apache.log4j.Logger;public classLog {private static Map loggerMap = new HashMap();public static void main(String[] args) throwsClassNotFoundException {
Log.error("自定义LOG","sss444444");
}public static voiddebug(Object message){
String className=getClassName();
Logger log=getLogger(className);if(log.isDebugEnabled()){
log.debug(message);
}
}public static voiddebug(String tag, Object message){
String className=getClassName();
Logger log=getLogger(className);if(log.isDebugEnabled()){
log.debug(new StringBuffer().append("【").append(tag).append("】").append(message).toString());
}
}public static voidinfo(Object message){
String className=getClassName();
Logger log=getLogger(className);if(log.isInfoEnabled()){
log.info(message);
}
}public static voidinfo(String tag, Object message){
String className=getClassName();
Logger log=getLogger(className);if(log.isInfoEnabled()){
log.info(new StringBuffer().append("【").append(tag).append("】").append(message).toString());
}
}public static voidwarn(Object message){
String className=getClassName();
Logger log=getLogger(className);
log.warn(message);
}public static voidwarn(String tag, Object message){
String className=getClassName();
Logger log=getLogger(className);
log.warn(new StringBuffer().append("【").append(tag).append("】").append(message).toString());
}public static voiderror(Object message){
String className=getClassName();
Logger log=getLogger(className);
log.error(message);
}public static voiderror(String tag, Object message){
String className=getClassName();
Logger log=getLogger(className);
log.error(new StringBuffer().append("【").append(tag).append("】").append(message).toString());
}/*** 获取最开始的调用者所在类
*@return
*/
private staticString getClassName(){
Throwable th= newThrowable();
StackTraceElement[] stes=th.getStackTrace();
StackTraceElement ste= stes[2];returnste.getClassName();
}/*** 根据类名获得logger对象
*@paramclassName
*@return
*/
private staticLogger getLogger(String className){
Logger log= null;if(loggerMap.containsKey(className)){
log=loggerMap.get(className);
}else{try{
log=Logger.getLogger(Class.forName(className));
loggerMap.put(className, log);
}catch(ClassNotFoundException e) {
e.printStackTrace();
}
}returnlog;
}
}