在开发中,常常需要把异常信息的StackTrace转化成String写入日志文件或保存到数据库中。 最初,我使用getStackTrace().toString() 这样的代码,后来发现这样无法获取全部信息,怎么办呢,可以用如下方法实现:
public static String FormatStackTrace(Throwable throwable) {
if(throwable==null) return "";
String rtn = throwable.getStackTrace().toString();
try {
Writer writer = new StringWriter();
PrintWriter printWriter = new PrintWriter(writer);
throwable.printStackTrace(printWriter);
printWriter.flush();
writer.flush();
rtn = writer.toString();
printWriter.close();
writer.close();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception ex) {
}
return rtn;
}