package com.matrix.core.tools; 
 | 
  
 | 
import org.apache.log4j.Logger; 
 | 
  
 | 
/** 
 | 
 * 日志工具 
 | 
 *  
 | 
 * @author JIANGYOUYAO 
 | 
 * @email 935090232@qq.com 
 | 
 * @date 2017年11月27日 
 | 
 */ 
 | 
public class LogUtil { 
 | 
  
 | 
    private static Logger log = Logger.getLogger(LogUtil.class); 
 | 
  
 | 
    private static final int CALL_DEEP = 3; 
 | 
  
 | 
    public static void info(String message, Object... params) { 
 | 
        log.info(getInvokeMessage(formart(message, params))); 
 | 
    } 
 | 
  
 | 
    public static void debug(String message, Object... params) { 
 | 
        log.debug(getInvokeMessage(formart(message, params))); 
 | 
    } 
 | 
  
 | 
    public static void warn(String message, Object... params) { 
 | 
        log.warn(getInvokeMessage(formart(message, params))); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 打印error信息,带堆栈 
 | 
     *  
 | 
     * @author JIANGYOUYAO 
 | 
     * @email 935090232@qq.com 
 | 
     * @date 2017年11月27日 
 | 
     * @param message 
 | 
     * @param t 
 | 
     * @param params 
 | 
     */ 
 | 
    public static void error(String message, Throwable t, Object... params) { 
 | 
        log.error(getInvokeMessage(formart(message, params)), t); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 打印error信息,不带堆栈 
 | 
     *  
 | 
     * @author JIANGYOUYAO 
 | 
     * @email 935090232@qq.com 
 | 
     * @date 2017年11月27日 
 | 
     * @param message 
 | 
     * @param params 
 | 
     */ 
 | 
    public static void error(String message, Object... params) { 
 | 
        log.error(getInvokeMessage(formart(message, params))); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 构建类信息和方法信息 
 | 
     *  
 | 
     * @author JIANGYOUYAO 
 | 
     * @email 935090232@qq.com 
 | 
     * @date 2017年11月27日 
 | 
     * @param message 
 | 
     * @return 
 | 
     */ 
 | 
    public static String getInvokeMessage(String message) { 
 | 
        StringBuffer msg = new StringBuffer(); 
 | 
        StackTraceElement[] track = Thread.currentThread().getStackTrace(); 
 | 
        if (track.length > CALL_DEEP && track[CALL_DEEP] != null) { 
 | 
            StackTraceElement element = track[CALL_DEEP]; 
 | 
            msg.append(" [ ").append(element.getClassName()).append(".").append(element.getMethodName()) 
 | 
                    .append("(" + element.getFileName() + ":" + element.getLineNumber() + ")").append(" ] — "); 
 | 
        } 
 | 
        return msg.append(message).toString(); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 格式化参数 
 | 
     *  
 | 
     * @author JIANGYOUYAO 
 | 
     * @email 935090232@qq.com 
 | 
     * @date 2017年11月27日 
 | 
     * @param message 
 | 
     * @param params 
 | 
     * @return 
 | 
     */ 
 | 
    public static String formart(String message, Object... params) { 
 | 
  
 | 
        message = message.replace("{}", "%s"); 
 | 
        if (params == null || params.length < 1) { 
 | 
            return message; 
 | 
        } 
 | 
        return String.format(message, params); 
 | 
  
 | 
    } 
 | 
  
 | 
} 
 |