[java] 如何在日志中停止stacktraces截断



Answers

Apache的Commons Lang提供了一个很好的util方法ExceptionUtils.printRootCauseStackTrace() ,它打印嵌套的堆栈跟踪'颠倒'。 结果更加直观。

如果你看到printStackTrace()方法中原始文件旁边的结果,那么“113多条”线的位置就会很清楚。

Question

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

有谁知道如何显示完整的堆栈跟踪(即显示其他113行)?

Throwable的JavaDocs(适用于Java 7)对发生的事情有一个非常详细的解释。




增加-XX:MaxJavaStackTraceDepth JVM选项。




Related