UtilLog.java 1.71 KB
package com.taover.util;

import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.HashMap;
import java.util.Map;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;


public class UtilLog {
	private static Map<String, Log> logByClassName = new HashMap<String, Log>(); 
	
	/**
	 * 输出日志文本
	 * @param message
	 * @param infoClass
	 */
	public static void infoForMessage(String message, Class infoClass){
		String className = infoClass.getName();
		Log log = logByClassName.get(infoClass.getName());
		if(log == null){
			log = LogFactory.getLog(infoClass);
			if(log == null){
				return;
			}
			logByClassName.put(className, log);
		}
		log.info(message);
	}
	
	/**
	 * 输出日志Exception内容
	 * @param e
	 * @param infoClass
	 */
	public static String infoForException(Exception e, Class infoClass){
		StringWriter sw = new StringWriter();
		e.printStackTrace(new PrintWriter(sw));
		UtilLog.infoForMessage(sw.toString(), infoClass);
		return sw.toString();
	}
	
	/**
	 * 输出文本内容
	 * @param message
	 * @param infoClass
	 */
	public static void errorForMessage(String message, Class infoClass){
		String className = infoClass.getName();
		Log log = logByClassName.get(infoClass.getName());
		if(log == null){
			log = LogFactory.getLog(infoClass);
			if(log == null){
				return;
			}
			logByClassName.put(className, log);
		}
		log.error(message);
	}
	
	/**
	 * 输出日志Exception信息
	 * @param e
	 * @param infoClass
	 */
	public static String errorForException(Exception e, Class infoClass){
		StringWriter sw = new StringWriter();
		e.printStackTrace(new PrintWriter(sw));
		UtilLog.errorForMessage(sw.toString(), infoClass);
		return sw.toString();
	}
}