Java打印調用堆棧的方法

private void printInfo() {
	Throwable ex = new Throwable();
       StackTraceElement[] stackElements = ex.getStackTrace();
       if (stackElements != null) {
           for (int i = 0; i < stackElements.length; i++) {
           	StackTraceElement stackTraceElement = stackElements[i];
			String output = String.format("%s():%s, %s (%s)",stackTraceElement.getMethodName(), stackTraceElement.getLineNumber(),getSimpleName(stackTraceElement.getClassName()),getPackageName(stackTraceElement.getClassName()));
           	System.out.println(output);
           }
       }
}

private String getSimpleName(String className) {
	// TODO Auto-generated method stub
	return className.substring(className.lastIndexOf('.') + 1);
}

private String getPackageName(String className) {
	// TODO Auto-generated method stub
	return className.substring(0,className.lastIndexOf('.'));
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章