在Java日志中很多次我会得到类似的东西:
Caused by: java.sql.BatchUpdateException: failed batch
at org.hsqldb.jdbc.jdbcStatement.executeBatch(jdbcStatement.java:1102)
at org.hsqldb.jdbc.jdbcPreparedStatement.executeBatch(jdbcPreparedStatement.java:514)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:48)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:242)
... 113 more
Run Code Online (Sandbox Code Playgroud)
有谁知道如何显示完整的堆栈跟踪(即显示其他113行)?
Throwable 的JavaDocs(适用于Java 7)对发生的事情有一个非常详细的解释.
我需要编写一个小的日志分析器应用程序来处理由我的项目中使用的第三方闭源库(在里面有自定义记录器)生成的一些日志文件.
如果日志中有异常条目,我需要从异常的顶部到实际位置收集有关堆栈跟踪所涉及方法的聚合信息.
不幸的是,默认情况下,Java printStackTrace()不会打印调用堆栈中的每个方法,而是打印一定数量,其余的只是被引用为16 more....
如果我能自己捕获异常,我会使用getStackTrace()并自己打印,但根本原因从未包含在此库引发的异常中.
有没有办法让Java在堆栈跟踪中打印整个调用堆栈?
除了我的情况,常见的日志框架可以选择吗?
编辑:该程序在Sun的JVM上使用JDK 1.5.0_09运行.无法改变这一点.