zoukankan      html  css  js  c++  java
  • log4j日志工具类

    /**
    * log4j日志Util
    */
    public class LogUtil {
    private static Logger logger=null;

    static{
    StackTraceElement[] stackTraceElements=new Throwable().getStackTrace();
    String callerClassName=stackTraceElements[1].getClassName();
    logger=LoggerFactory.getLogger(callerClassName);
    }

    private LogUtil(){}

    //---------------------error---------------------------------
    public static void error(String param,String msg,Throwable e){
    StackTraceElement se = Thread.currentThread().getStackTrace()[2];
    String clazzMethod = " "+se.getClassName() +"." + se.getMethodName() + "("+se.getFileName()+":"+se.getLineNumber()+") ";

    String log = clazzMethod+" PARAMS: " +param+" "+" MSG: "+ msg;
    logger.error(log,e);
    }

    //---------------------warn----------------------------------
    public static void warn(String param,String msg){
    StackTraceElement se = Thread.currentThread().getStackTrace()[2];
    String clazzMethod = " "+se.getClassName() +"." + se.getMethodName() + "("+se.getFileName()+":"+se.getLineNumber()+") ";

    String log = clazzMethod+" PARAMS: " +param+" "+" MSG: "+ msg;
    logger.warn(log);
    }

    //---------------------info----------------------------------
    public static void info(String param,String msg){//
    StackTraceElement se = Thread.currentThread().getStackTrace()[2];
    String clazzMethod = " "+se.getClassName() +"." + se.getMethodName() + "("+se.getFileName()+":"+se.getLineNumber()+") ";

    String log = clazzMethod + " PARAMS: " +param+" "+" MSG: "+ msg;
    logger.info(log);
    }

    public static void debug(String msg) {
    StackTraceElement se = Thread.currentThread().getStackTrace()[2];
    String clazzMethod = " "+se.getClassName() +"." + se.getMethodName() + "("+se.getFileName()+":"+se.getLineNumber()+") ";

    String log = clazzMethod + " MSG: "+ msg;
    logger.debug(log);
    }

    }

  • 相关阅读:
    人们常说的带宽是什么意思?
    关注前端性能
    单测学习笔记
    基于 Istanbul 生成测试用例覆盖率报告
    如何做高水科研
    Human-like Controllable Image Captioning with Verb-specific Semantic Roles(具有动词语义角色的类人可控图像字幕生成)
    Netty应用程序的全部基本构建模块_netty学习笔记(2)-20210405
    异步和事件驱动_netty学习笔记(1)-20210330
    理解 cosocket(转)
    nginx lua阶段处理流程
  • 原文地址:https://www.cnblogs.com/wangjing666/p/6842181.html
Copyright © 2011-2022 走看看