河南做网站公司报价,工商做年报网站,秦皇岛网站建设价格,wordpress 用户修改密码有时候一个方法被很多方法调用了#xff0c;但是在调试应用程序的时候#xff0c;需要知道是哪个方法调用它的#xff0c;方便定位bug问题。否者#xff0c;比较难以理清和解决一些bug问题。 
适用#xff1a;任何适用java语言编程的地方#xff0c;java后端和android端。…有时候一个方法被很多方法调用了但是在调试应用程序的时候需要知道是哪个方法调用它的方便定位bug问题。否者比较难以理清和解决一些bug问题。 
适用任何适用java语言编程的地方java后端和android端。 
以下是我总结的工具打印方法。你也可以基于此方法进行定制可以打印完整的调用栈信息。 
package utils;/*** 日之类测试方法*/
public class LogsUtilsTest {public static void main(String[] args) {parentMethod01();parentMethod03();parentMethod05();}private static void parentMethod01(){childMethod();}private static void parentMethod02(){childMethod();}private static void parentMethod03(){childMethod();}private static void parentMethod04(){childMethod();}private static void parentMethod05(){childMethod();}private static  void childMethod(){System.out.println(childMethod StackTrace:LogUtils.getParentClassStackTrace(LogsUtilsTest.class.getName()));}
} 
package utils;/*** 日志工具类*/
public class LogUtils {/*** 获取当前方法调用的类名方法代码行* param currClassName* return*/public static  String  getParentClassStackTrace(String currClassName){StackTraceElement[] stackTrace  Thread.currentThread().getStackTrace();StackTraceElement log  stackTrace[2];String tag  null;int parent0;for (int i  1; i  stackTrace.length; i) {StackTraceElement e  stackTrace[i];if(e.getClassName().equals(currClassName)){parenti;break;}}StackTraceElement parentStack  stackTrace[parent1];tag  《parentStack.getClassName()  》.《  parentStack.getMethodName()》.《parentStack.getLineNumber()》;if (tag  null) {tag  log.getClassName()  .  log.getMethodName().log.getFileName().log.getLineNumber();}return tag;}
} 
代码运行打印