printStackTrace 实现

我们一般在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();
}

 

你可能感兴趣的:(log4j)