把e.printStackTrace的堆栈信息打印在log.error()中
2016-12-29 16:48
337 查看
大家都知道,网站在运行的过程中,打印必要的log对记录网站的运行情况、从而分析程序问题是很重要的。在Java工程里面配置好log4j之后就可以进行log记录了。
log分为几个级别:error、info、debug、fatal,应根据网站的具体情况,配置合适的level。
例子:
log.error("libzone.cn exception:链接数据库出错")
log.info("libzone.cn exception:链接数据库出错")
log.debug("libzone.cn exception:链接数据库出错")
log.fatal("libzone.cn exception:链接数据库出错")。
有时候,我们有必要把出错时候的异常信息打印进log里面,例子:
}catch (Exception e){
e.printStackTrace();
log.error("libzone.cn exception:" + e);
//log.info("libzone.cn exception:" + e);
//log.debug("libzone.cn exception:" + e);
//log.fatal("libzone.cn exception:" + e);
}
以这种方式,指的是以"libzone.cn exception:" + e这种方式打印异常的时候,只会打印一个异常的概要信息,例子如下:
libzone.cn exception:com.BusinessException: java.lang.NullPointerException
有时候,这样的一个概要性的异常信息对于分析问题帮助不大,有可能我们想把异常的堆栈具体信息打印在log里面,那怎么在log.error()里面把e.printStackTrace的堆栈具体信息打印出来呢?这时候我们要以log.XXX(Object obj,Thowable e)这种方式,也就是要将异常对象作为第二个参数传递到log的方法中。例子如下:
}catch (Exception e){
e.printStackTrace();
log.error("libzone.cn exception:", e);
//log.info("libzone.cn exception:", e);
//log.debug("libzone.cn exception:", e);
//log.fatal("libzone.cn exception:", e);
}
这样,我们就可以在log日志里面看到类似于控制台(console)里面那样的异常详细信息了。
如果全部把异常详细打印出来,有可能造成日志文件会很大;打印概要信息,可能对分析问题帮助不大。应根据自己的实际情况,选择合适的方式
log分为几个级别:error、info、debug、fatal,应根据网站的具体情况,配置合适的level。
例子:
log.error("libzone.cn exception:链接数据库出错")
log.info("libzone.cn exception:链接数据库出错")
log.debug("libzone.cn exception:链接数据库出错")
log.fatal("libzone.cn exception:链接数据库出错")。
有时候,我们有必要把出错时候的异常信息打印进log里面,例子:
}catch (Exception e){
e.printStackTrace();
log.error("libzone.cn exception:" + e);
//log.info("libzone.cn exception:" + e);
//log.debug("libzone.cn exception:" + e);
//log.fatal("libzone.cn exception:" + e);
}
以这种方式,指的是以"libzone.cn exception:" + e这种方式打印异常的时候,只会打印一个异常的概要信息,例子如下:
libzone.cn exception:com.BusinessException: java.lang.NullPointerException
有时候,这样的一个概要性的异常信息对于分析问题帮助不大,有可能我们想把异常的堆栈具体信息打印在log里面,那怎么在log.error()里面把e.printStackTrace的堆栈具体信息打印出来呢?这时候我们要以log.XXX(Object obj,Thowable e)这种方式,也就是要将异常对象作为第二个参数传递到log的方法中。例子如下:
}catch (Exception e){
e.printStackTrace();
log.error("libzone.cn exception:", e);
//log.info("libzone.cn exception:", e);
//log.debug("libzone.cn exception:", e);
//log.fatal("libzone.cn exception:", e);
}
这样,我们就可以在log日志里面看到类似于控制台(console)里面那样的异常详细信息了。
如果全部把异常详细打印出来,有可能造成日志文件会很大;打印概要信息,可能对分析问题帮助不大。应根据自己的实际情况,选择合适的方式
是这样的,如果获取了异常,把异常作为最后一个参数打出来,那么可以打出异常的stack,否则不行。也就是说 try{ ....... } catch(Exceptoin e){ log.error("运行异常",e); //可以获取异常的stack log.error("运行异常"); // 只能获取运行异常几个字 log.error(e); //会调用e的toString方法,可以获取异常的Message,但没有stack log.error(e.getMessage);//可以得到异常的message ,没有stack }
相关文章推荐
- 把e.printStackTrace的堆栈信息打印在log.error()中
- 把e.printStackTrace的堆栈信息打印在log.error()中
- 把e.printStackTrace的堆栈信息打印在log.error()中
- 把e.printStackTrace的堆栈信息打印在log.error()中
- 将e.printStackTrace()打印的信息输入到log4j
- android ndk调用Log.getStackTraceString(new Throwable())输出堆栈信息
- 使用日志框架如何输出printStackTrace()的堆栈信息
- 使用log4j的时候如何输出printStackTrace()的堆栈信息
- Java 输出 printStackTrace 堆栈信息
- 使用log4j的时候如何输出printStackTrace()的堆栈信息
- printStackTrace()方法的意思是:在命令行打印异常信息在程序中出错的位置及原因
- 使用log4j的时候如何输出printStackTrace()的堆栈信息
- 把e.printStackTrace的堆栈信息打印在log.error()中
- 服务器上的日志文件不打印e.printStackTrace();信息
- android 将堆栈信息通过log打印出来
- 重构获取异常栈信息--printStackTrace
- 得到java异常printStackTrace的详细信息
- 得到java异常printStackTrace的详细信息
- printStackTrace方法打出的详细信息存储到一个字符串中
- backtrace&&backtrace_symbols 查找段错误 打印堆栈信息