/**
* 错误堆栈信息转String
* @param t
* @return
*/
public static String getStackTrace(Throwable t){
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
String stackMsg ;
try{
t.printStackTrace(pw);
stackMsg = sw.toString();
int casedInt = stackMsg.lastIndexOf("Caused by:");
if (casedInt != -1){
stackMsg = stackMsg.substring(casedInt, stackMsg.length());
if (stackMsg.split("at").length > 15){
Pattern p = Pattern.compile("at");
Matcher m = p.matcher(stackMsg);
int num = 0, index = -1;
while(m.find()){
num++;
if(15 == num){
index = m.start();
System.out.println(m.start());
stackMsg = ""+stackMsg.substring(0, index);
break;
}
}
}
}
return stackMsg;
}catch (Exception e){
e.printStackTrace();
}finally{
pw.close();
}
return sw.toString();
}