StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();
for (StackTraceElement e : stackTrace) {
System.out.println(e.getClassName() + "\t"
+ e.getMethodName() + "\t" + e.getLineNumber());
}
StackTraceElement log = stackTrace[1];
String tag = null;
for (int i = 1; i < stackTrace.length; i++) {
StackTraceElement e = stackTrace[i];
if (!e.getClassName().equals(log.getClassName())) {
tag = e.getClassName() + "." + e.getMethodName();
break;
}
}
简单点来说就是:
Thread.currentThread().getStackTrace()[1].getClassName();//当前类
Thread.currentThread().getStackTrace()[1].getMethodName();//当前方法
Thread.currentThread().getStackTrace()[2].getClassName();//上一级类
Thread.currentThread().getStackTrace()[2].getMethodName();//上一级方法