java 获取当前类名,方法名,行号

文件名

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


你可能感兴趣的:(java 获取当前类名,方法名,行号)