在 Java 中,用于创建记录器,而不是调用
private static final Logger logger = LoggerFactory.getLogger("ClassName");
我创建了一个实用方法,它从堆栈跟踪返回类名并调用该方法。
private static final Logger logger = LoggerFactory.getLogger(Utilities.getInvokingClassName());
Utilities.java
:
public static String getInvokingClassName()
{
return new Throwable().getStackTrace()[1].getClassName();
}
显然,我正在使用资源密集型流程,而优点是我在编码时具有更高的模块化。问题是这对性能的影响有多大?如果它不是太耗费资源,那为什么不是标准做法呢?