线程堆栈跟踪到字符串

时间:2013-12-24 14:11:55

标签: java

java.lang.Thread.getStackTrace()转换为字符串的最简单方法是什么?

有很多方法可以将Throwable转换为字符串,但我需要获得特定线程对象的堆栈跟踪

2 个答案:

答案 0 :(得分:2)

你可以这样做

StringBuilder sb = new StringBuilder();
for(StackTraceElement ste: Thread.getStackTrace())
    sb.append("\tat ").append(ste).append("\n");
String trace = sb.toString();

答案 1 :(得分:0)

Apache Commons提供了异常实用程序来帮助解决此类问题。这些实用程序中包含一个接受Throwable对象并返回String的方法。您应该能够在线程上创建一个Throwable对象,将其传递给此函数,并根据需要使用返回。

我所指的方法可以在这里找到:Apache Commons Exception Utilities - getStackTrace