Java日志出现异常,但没有完整的堆栈信息

本文探讨了解决生产环境中NullPointException日志不显示堆栈跟踪的问题。通过研究发现,JVM为优化性能,在重复遇到相同异常时仅报告摘要信息而省略堆栈跟踪。文章提供了排查此类问题的方法。


最近生产机器出现了NullPointException, 但是并没有给出详细的堆栈信息,这让大家很郁闷,一开始以为是日志工具配置有问题,结果同样的配置其他机器却是正常的,

   在网上找了几篇文章这篇虽然尝试可以解决问题,但是没搞懂究竟为什么这样设置,改动JVM默认配置是需要很大的勇气的哦。。。

   然后在stackoverflow上找到了这个答案,这个被采纳的答案里有个得票率最高的链接,点这里

   看了大半天终于搞明白了题主的意思了,

  不打印异常堆栈日志是因为JVM在多次遇到同一异常信息时,前几次会输出堆栈信息,后面就会主动优化掉,只反馈异常摘要信息,

  所以说我们只要往上翻翻以前的日志就可以看到该异常的具体信息,无需再设置JVM参数: -XX:-OmitStackTraceInFastThrow 或 -Xint参数了


 这篇文章中还可以再现这种情况哦,很棒。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值