如何使用log4j获取Java中的当前类名称

use*_*641 4 java log4j

我正在使用log4j进行日志记录,以便在执行时获取各个方法的类名,我得到了一些使用SecurityManager来获取类名的通用方法,但是我不想使用SecurityManager,是它们的任何其他方式在运行时获取类名。我也不想写代码(MyClass.getClassName)来获取每个类中的类名。

class log extends SecurityManager {

public String getClassName() {
        return getClassContext()[3].getName();
    }

}
Run Code Online (Sandbox Code Playgroud)

Mic*_*hal 5

静态记录器解决方案:

private static final Logger LOG = Logger.getLogger(new Object() { }.getClass().getEnclosingClass());
Run Code Online (Sandbox Code Playgroud)


小智 4

全名(带包裹):

this.getClass().getName();
Run Code Online (Sandbox Code Playgroud)

对于类的名称(仅类名,仅此而已):

this.getClass().getSimpleName();
Run Code Online (Sandbox Code Playgroud)