获取class名:
非static method中使用:
this.getClass().getName();// 这是完整的类路径名
this.getClass().getSimpleName();// 仅仅是类名
static method中使用:
Thread.currentThread().getStackTrace()[1].getClassName();
获取方法名:
Thread.currentThread().getStackTrace()[1].getMethodName();
获取行号:
Thread.currentThread().getStackTrace()[1].getLineNumber();
Log 代码:
System.out.println("Class: "+this.getClass().getName()+" method: "+Thread.currentThread().getStackTrace()[1].getMethodName() +" line:"+Thread.currentThread().getStackTrace()[1].getLineNumber());
获取文件名(带后缀):
Thread.currentThread().getStackTrace()[1].getFileName();
完整示例:
package com.hello.demo;
public class TestA {
public void hello() {
System.out.println("hello world");
String className = this.getClass().getName();
String simpleClassName = this.getClass().getSimpleName();
String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
// hello world
//className: com.hello.demo.TestA, simpleClassName: TestA, methodName: hello
System.out.println("className: " + className + ", simpleClassName: " + simpleClassName + ", methodName: " + methodName);
}
public static void main(String[] args) {
new TestA().hello();
}
}
https://blog.csdn.net/cnds123321/article/details/122812305