日志工具类

package com.pt.platform.core.common;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class JYLoggerUtil {
    private static final Logger log = LoggerFactory.getLogger(JYLoggerUtil.class);
    private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    private static ThreadLocal<Map<String, Date>> threadMap = new ThreadLocal();

    public JYLoggerUtil() {
    }

    public static <T> void info(Class<T> clazz, String message) {
        Logger logger = LoggerFactory.getLogger(clazz);
        logger.info(message);
    }

    public static <T> void info(Class<T> clazz, String message, Throwable t) {
        Logger logger = LoggerFactory.getLogger(clazz);
        logger.info(message, t);
    }

    public static <T> void debug(Class<T> clazz, String message) {
        Logger logger = LoggerFactory.getLogger(clazz);
        logger.debug(message);
    }

    public static <T> void error(Class<T> clazz, String message) {
        Logger logger = LoggerFactory.getLogger(clazz);
        logger.error(message);
    }

    public static <T> void error(Class<T> clazz, String message, Exception ex) {
        Logger logger = LoggerFactory.getLogger(clazz);
        logger.error(message, ex);
    }

    public static <T> void logCurrentTime(String key, boolean isStart, Class<T> cls) {
        if(log.isInfoEnabled()) {
            Object timeMap = (Map)threadMap.get();
            if(timeMap == null) {
                timeMap = new HashMap();
                threadMap.set(timeMap);
            }

            String mapKey = cls.getName() + ":" + key;
            Date curDate = new Date();
            if(isStart) {
                ((Map)timeMap).put(mapKey, curDate);
            } else {
                Date lastDate = (Date)((Map)timeMap).get(mapKey);
                if(lastDate != null) {
                    ((Map)timeMap).remove(mapKey);
                    StringBuilder logInfo = new StringBuilder("=========");
                    logInfo.append(",(位置:").append(cls.getName());
                    logInfo.append(",内容:").append(key).append(")");
                    logInfo.append(",间隔:").append(curDate.getTime() - lastDate.getTime());
                    logInfo.append(",开始start:").append(sdf.format(lastDate));
                    logInfo.append(",结束end:").append(sdf.format(curDate)).append("=========");
                    log.info(logInfo.toString());
                    threadMap.remove();
                }
            }

        }
    }
}

 

posted @ 2017-08-18 10:39  也许还年轻  阅读(234)  评论(0)    收藏  举报