我需要编写一个小型日志分析器应用程序来处理由我的项目中使用的第 3 方封闭源库(内部有自定义记录器)生成的一些日志文件。
如果日志中出现异常条目,我需要收集有关从顶部到异常实际位置的堆栈跟踪所涉及的方法的聚合信息。
不幸的是,默认情况下,Java printStackTrace() 不会打印调用堆栈中的每个方法,而是打印到一定数量,其余的只是引用为16 more...
.
如果我可以自己捕获异常,我会使用 getStackTrace() 并自己打印它,但根本原因永远不会包含在这个库抛出的异常中。
有没有办法让 Java 在堆栈跟踪中打印整个调用堆栈?
除了我的情况之外,常见的日志记录框架是否有此选项?
编辑:该程序在带有 JDK 1.5.0_09 的 Sun JVM 上运行。没有选择改变它。