Я использую log4j2 (2.11.1) с Java 11 и пытаюсь получить объект Logger
, используя:
private static final Logger LOG = LogManager.getLogger();
(импортировано из log4j-api
в org.apache.logging.log4j
)
Во время выполнения я получаю следующую ошибку:
WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impact performance.
Exception in thread "main" java.lang.ExceptionInInitializerError
Caused by: java.lang.UnsupportedOperationException: No class provided, and an appropriate one cannot be found.
at
org.apache.logging.log4j.LogManager.callerClass(LogManager.java:555)
at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:580)
at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:567)
at app.App.<clinit>(App.java:11)
Что имеет смысл - getCallerClass не поддерживается, и поэтому регистратор не может определить имя класса.
Это так?должен работать таким образом?Конечно, мне не нужно жестко кодировать имя класса в каждом логгере?