打印出方法调用的位置有助于问题的定位,使用如下方法即可打印出方法调用的位置信息
package com.space.main;
public class Temp {
public static void main(String[] args) {
analyContent();
}
private static String analyContent(){
int STACK_TRACE_INDEX = 2;
String SUFFIX = ".java";
StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();
StackTraceElement targetElement = stackTrace[STACK_TRACE_INDEX];
//类名
String className = targetElement.getClassName();
String[] classNameInfo = className.split("\\.");
if (classNameInfo.length > 0) {
className = classNameInfo[classNameInfo.length - 1] + SUFFIX;
}
if (className.contains("$")) {
className = className.split("\\$")[0] + SUFFIX;
}
String methodName = targetElement.getMethodName();
int lineNumber = targetElement.getLineNumber();
if (lineNumber < 0) {
lineNumber = 0;
}
//方法名
String methodNameShort = methodName.substring(0, 1).toUpperCase() + methodName.substring(1);
System.out.println("className="+className);
System.out.println("lineNumber="+lineNumber);
System.out.println("methodNameShort="+methodNameShort);
String headString = "[ (" + className + ":" + lineNumber + ")#" + methodNameShort + " ] ";
return headString;
}
}
在日志系统中一般都需要打印出方法的调用位置,用此方法便能很方便的打印出位置,方便问题的定位。