printStackTrace 实现
程序员文章站
2022-07-06 09:55:57
...
我们一般在catch中喜欢写e.printStackTrace();
这个方法可以把错误的信息都在控制台中显示出来,但是如果我们希望能把这些内容通过log4j写到日志中,这就得费一番周折了,我写了一个方法已经完全实现了和printStackTrace相同的输出,现与大家分享一下
/**
* 返回Exception 中 printStackTrace中的一些信息
* @param Exception e
* @return String类型错误信息,其中包括ClassName,FileName,MethodName,LineNumber
*/
public static String exceptionToStr(Exception e){
StringBuffer sbf = new StringBuffer(e.getClass().getName()+": "+e.getMessage()+"\n");
StackTraceElement[] ste = e.getStackTrace();
for(int i=0;i<ste.length;i++){
sbf.append("\t"+ste[i].getClassName()+"."+ste[i].getMethodName()+"("+ste[i].getFileName()+":"+ste[i].getLineNumber()+")\t\n");
}
return sbf.toString();
}