java-实时打印当前线程的调用堆栈

	/**
	 * 打印当前线程的调用堆栈
	 * 
	 */
	void printTrack(){
		StackTraceElement[] st = Thread.currentThread().getStackTrace();
		if(st==null){
			System.out.println("无堆栈...");
			return;
		}
		StringBuffer sbf =new StringBuffer();
		for(StackTraceElement e:st){
			if(sbf.length()>0){
				sbf.append(" <- ");
				sbf.append(System.getProperty("line.separator"));
			}
			sbf.append(java.text.MessageFormat.format("{0}.{1}() {2}"
					,e.getClassName()
					,e.getMethodName()
					,e.getLineNumber()));
		}
		System.out.println(sbf.toString());
	}


Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐