文件名
Thread.currentThread().getStackTrace()[originStackIndex].getFileName();
方法名
Thread.currentThread().getStackTrace()[originStackIndex].getMethodName();
行号
Thread.currentThread().getStackTrace()[originStackIndex].getLineNumber();
类名
Thread.currentThread().getStackTrace()[originStackIndex].getClassName();
示例:
private static int originStackIndex = 2;
public static String getFileName() {
return Thread.currentThread().getStackTrace()[originStackIndex].getFileName();
}
类名
public static String getClassName() {
return Thread.currentThread().getStackTrace()[originStackIndex].getClassName();
}
方法名
public static String getMethodName() {
return Thread.currentThread().getStackTrace()[originStackIndex].getMethodName();
}
行号
public static int getLineNumber() {
return Thread.currentThread().getStackTrace()[originStackIndex].getLineNumber();
}
public static void main(String[] args) {
System.out.println(LogUtils.getFileName());
System.out.println(LogUtils.getClassName());
System.out.println(LogUtils.getMethodName());
System.out.println(LogUtils.getLineNumber());
}
输出
LogUtils.java
main.java.utils.LogUtils
main
28