我需要编写一个小型日志分析器应用程序来处理我的项目中使用的第三方闭源库(内部有自定义记录器)生成的一些日志文件。
如果日志中出现异常条目,我需要收集有关从堆栈跟踪顶部到异常实际位置所涉及方法的聚合信息。
不幸的是,默认情况下 Java printStackTrace() 不会打印调用堆栈中的每个方法,但最多打印一定数量的方法,其余的仅被引用为16 more...
.
如果我自己可以捕获异常,我会使用 getStackTrace() 并自己打印它,但根本原因永远不会包含在该库引发的异常中。
有没有办法让 Java 在堆栈跟踪中打印整个调用堆栈?
除了我的情况之外,常见的日志框架是否有此选项?
Edit:该程序在带有 JDK 1.5.0_09 的 Sun JVM 上运行。没有选择改变这一点。
这是一个解释“由……引起”和“……”n打印迹线中的更多行。另请参阅printStackTrace 的 JavaDoc。你可能没有任何工作要做。
请注意包含字符“...”的行的存在。这些行指示此异常的堆栈跟踪的其余部分与由此异常(“封闭”异常)引起的异常的堆栈跟踪底部的指示帧数相匹配。在常见情况下,这种简写可以大大减少输出的长度,在这种情况下,从与捕获“原因异常”相同的方法引发包装异常。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)