首页

规范化日志工具类LoggerUtil - 可连续打印数组内容如:LoggerUtil.info(logger,"标题1","标题2")

标签:工具类,log4j,Logger,apache,日志打印     发布时间:2016-09-15   

很多时候我们通过apacheLogFactorylog4j的logger打印内容的时,需要打印不同对象的内容:LoggerUtil.info(logger,map1,map2); - 分别打印map1和2的内容,用apache提供的的logger.info()方法就不是太方便了,因此写了如下工具类有助于日志多对象输出,如下所示

import java.util.*;@b@import org.apache.log4j.Logger;@b@@b@public final class LoggerUtil{@b@@b@    // ~~~ 符号定义@b@@b@    /** 线程编号修饰符 */@b@    public static final char THREAD_RIGHT_TAG = ']';@b@@b@    /** 线程编号修饰符 */@b@    public static final char THREAD_LEFT_TAG  = '[';@b@@b@    /** 换行符 */@b@    public static final char ENTERSTR         = '\n';@b@@b@    /** 逗号 */@b@    public static final char COMMA            = ',';@b@@b@    /**@b@     * 禁用构造函数@b@     */@b@    private LoggerUtil() {@b@        // 禁用构造函数@b@    }@b@@b@    /**@b@     * 生成<font color="blue">调试级别日志@b@     * @b@     * @param logger 日志对象@b@     * @param obj 输出对象 输出对象@b@     */@b@    public static void debug(org.apache.log4j.Logger logger, Object... obj) {@b@        if (logger.isDebugEnabled()) {@b@            logger.debug(convertLogStr(obj));@b@        }@b@    }@b@@b@    /**@b@     * 生成<font color="blue">通知级别日志@b@     * @b@     * @param logger 日志对象@b@     * @param obj 输出对象@b@     */@b@    public static void info(Logger logger, Object... obj) {@b@        if (logger.isInfoEnabled()) {@b@            logger.info(convertLogStr(obj));@b@        }@b@    }@b@@b@    /**@b@     * 生成<font color="brown">警告级别日志@b@     * @b@     * @param logger 日志对象@b@     * @param obj 输出对象@b@     */@b@    public static void warn(Logger logger, Object... obj) {@b@@b@        logger.warn(convertLogStr(obj));@b@@b@    }@b@@b@    /**@b@     * 生成<font color="brown">警告级别日志@b@     * @b@     * @param logger 日志对象@b@     * @param obj 输出对象@b@     * @param t 异常对象@b@     */@b@    public static void warn(Logger logger, Throwable t, Object... obj) {@b@@b@        if (t == null) {@b@            logger.warn(convertLogStr(obj));@b@        } else {@b@            logger.warn(convertLogStr(obj), t);@b@        }@b@@b@    }@b@@b@    /**@b@     * 生成<font color="brown">错误级别日志@b@     * @b@     * @param logger 日志对象@b@     * @param obj 输出对象 @b@     * @param t 可为空@b@     */@b@    public static void error(Logger logger, Throwable t, Object... obj) {@b@@b@        if (t == null) {@b@            logger.error(convertLogStr(obj));@b@        } else {@b@            logger.error(convertLogStr(obj), t);@b@        }@b@@b@    }@b@@b@    /**@b@     * 获取日志@b@     * @b@     * @param obj 日志array@b@     * @return 拼接好的日志字符串@b@     */@b@    private static String convertLogStr(Object[] obj) {@b@        StringBuilder sb = new StringBuilder();@b@        for (Object o : obj) {@b@            sb.append(o);@b@        }@b@        return sb.toString();@b@    }@b@    @b@    public static void main(String[] args){@b@      @b@        Map<String, String> m1=new HashMap<String, String> ();@b@        m1.put("111", "aaa");@b@        @b@        Map<String, String> m2=new HashMap<String, String> ();@b@        m2.put("2222", "bbb");@b@      @b@         LoggerUtil.info(Logger.getLogger("test map1&2"),m1,m2);@b@    }@b@@b@}

运行结果

0    [main] INFO  test map1&2  – {111=aaa}{2222=bbb}
@b@