浅谈log4j不打印异常堆栈

浅谈log4j不打印异常堆栈
钛靶材
本⽂研究的主要是log4j 不打印异常堆栈的相关内容,具体如下。
最近在线上系统的错误⽇志中发现了⼀个现象:
数码彩扩代码⾥⽤log4j打印系统运⾏时异常堆栈信息,在错误⽇志中⽆法看到堆栈信息,只有异常信息。这对于程序员来说是⼀个打击,没有堆栈信息何从查bug啊。
[01-15 11:29:26] [ERROR] [org.apache.thrift.server.AbstractNonblockingServer$FrameBuffer:524] Unexpected
throwable while invoking!
后来发现这个是jdk的⼀个优化。JVM 为了性能会做优化,如果频繁的抛出某个异常,会重新编译,不再打印异常堆栈。
解决这个问题也⽐较简单,如果不想每次都去查前⾯的 log 去看堆栈,只要在启动参数加上 -XX:-OmitStackTraceInFastThrow,就可以禁⽤该优化,强制打印异常堆栈。这样可能会导致,log ⽂件过⼤,不过产线上今天之前的 log ⽂件都会被压缩,所以感觉问题也不⼤。
[01-15 16:40:09] [ERROR] [org.apache.thrift.server.AbstractNonblockingServer$FrameBuffer:524] Unexpected
throwable while invoking!
java.lang.NullPointerException
eee17at end.selector.services.FilterService.filter2(FilterService.java:42)
at end.thrift.IFilterService$Result(IFilterService.java:181)
at end.thrift.IFilterService$Result(IFilterService.java:166)
at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39)人工智能开发板
at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39)
at org.apache.thrift.server.AbstractNonblockingServer$FrameBuffer.invoke(AbstractNonblockingServ
er.java:518) at org.apache.thrift.server.Invocation.run(Invocation.java:18)
at urrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at urrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
总结网络隔离
立方氮化硼砂轮
以上就是本⽂关于浅谈log4j 不打印异常堆栈的全部内容,希望对⼤家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不⾜之处,欢迎留⾔指出。感谢朋友们对本站的⽀持!

本文发布于:2024-09-22 14:25:21,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/266763.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:堆栈   打印   信息   朋友   相关
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议