用Log4j记录你的异常信息

    技术2022-05-11  60

          记得刚开始学习Java的时候,为了跟踪程序的进程及异常信息,到处添加System.out.println()语句,到后来虽然也学会了配置并使用Log4j,但一直都只是用用而已,没有去深入地了解,近期在做一个小项目的时候又用到了Log4j,在捕捉一些异常的时候希望直接记录在日志文件里,于是在网上找了些资料完成了这个小小的工具类。

     

    package  com.hing.tools; import  org.apache.log4j.Logger; public   class  LogTool  {    public static void info(Class logClass,Object e){        Logger logger=Logger.getLogger(logClass);        if(e instanceof Exception){            logger.info(getException((Exception)e));        }else {            logger.info(e.toString());        }    }        public static void warn(Class logClass,Object e){        Logger logger=Logger.getLogger(logClass);        if(e instanceof Exception){            logger.warn(getException((Exception)e));        }else {            logger.warn(e.toString());        }    }        public static void debug(Class logClass,Object e){        Logger logger=Logger.getLogger(logClass);        if(e instanceof Exception){            logger.debug(getException((Exception)e));        }else {            logger.debug(e.toString());        }    }        public static void error(Class logClass,Object e){        Logger logger=Logger.getLogger(logClass);        if(e instanceof Exception){            logger.error(getException((Exception)e));        }else {            logger.error(e.toString());        }    }        public static void fatal(Class logClass,Object e){        Logger logger=Logger.getLogger(logClass);        if(e instanceof Exception){            logger.fatal(getException((Exception)e));        }else {            logger.fatal(e.toString());        }    }        public static String getException(Exception e){        StackTraceElement[] ste = e.getStackTrace();        StringBuffer sb = new StringBuffer();        sb.append(e.getMessage() + " ");        for (int i = 0; i < ste.length; i++{          sb.append(ste[i].toString() + " ");        }        return sb.toString();    }}

    测试类:

     

    package  com.sms.test; import  com.hing.tools.LogTool; public   class  TestLogTool  {    public static void main(String[] args){        LogTool.info(TestLogTool.class"this is info");        try{            throw new Exception("my exception");        }catch(Exception e){            LogTool.error(TestLogTool.class, e);        }    }}

     

    测试结果:

     

    2007 - 02 - 13   15 : 22 : 26  [com.sms.test.TestLogTool] - [INFO]  this  is info 2007 - 02 - 13   15 : 22 : 26  [com.sms.test.TestLogTool] - [ERROR] my exceptioncom.sms.test.TestLogTool.main(TestLogTool.java: 8 )

     


    最新回复(0)