在Java 11上,LogManager.getLogger()无法确定类名。

9 浏览
0 Comments

在Java 11上,LogManager.getLogger()无法确定类名。

我正在使用Java 11的log4j2(2.11.1),并尝试使用以下代码获取一个Logger对象:

private static final Logger LOG = LogManager.getLogger();

(从org.apache.logging.log4j中的log4j-api导入)

运行时,我收到以下错误:

警告:sun.reflect.Reflection.getCallerClass不受支持。这会影响性能。
异常发生在主线程中"main"java.lang.ExceptionInInitializerError
原因:java.lang.UnsupportedOperationException:未提供类,并且无法找到合适的类。
在org.apache.logging.log4j.LogManager.callerClass(LogManager.java:555)处
    在org.apache.logging.log4j.LogManager.getLogger(LogManager.java:580)处
    在org.apache.logging.log4j.LogManager.getLogger(LogManager.java:567)处
    在app.App.(App.java:11)处

这是有道理的 - getCallerClass不受支持,因此记录器无法确定类名。

它应该这样工作吗?我肯定不需要在每个记录器中硬编码类名吧?

0