日志丢失堆栈

 

你觉得这样打日志没问题,但是堆栈信息却丢了~

 

 

原因是JDK5的一个优化,打一个地方报出的异常一定次数以后就会把对账给省略了~

 

用如下代码可以做测试,这个时候, 你只要找到最开始的日志,那里是全的~之后改什么启动参数,把优化关了~不归你管~

 

public class LostException4 {

 private static Logger logger = LoggerFactory.getLogger(LostException4.class); 

 public static void main(String[] args) {

 String s = null;

 int i = 0;

 while(true){

 try{

 int[] a = null;

 a[2] = 1;

 }catch(Exception e){

 i++;

 s =ExceptionUtils.getFullStackTrace(e);

 logger.error("msg:",e);

 if(e.getStackTrace().length==0){

 break;

 }

 }

 }

 System.out.println(i);

 System.out.println(s);

 

 }

}

posted @ 2018-12-03 17:21  coolgame  阅读(319)  评论(0编辑  收藏  举报