Я ответил на этот вопрос:
как добавить пользовательский уровень ведения журнала в log4j
, а также официальную документацию log4j здесь:
https://logging.apache.org/log4j/2.x/manual/customloglevels.html
У меня нет log4j. xml в моем коде, и я пытаюсь реализовать его в самом коде Java. Однако при этом я сталкиваюсь с проблемой, когда подпись метода Logger.log () отличается от того, что написано.
Согласно документации, если я напишу этот фрагмент кода, я получит настраиваемый уровень журнала, который я смогу использовать в других частях моего кода:
final Level CUSTOM = Level.forName("CUSTOM", 550);
final Logger logger = LogManager.getLogger();
logger.log(CUSTOM, "a custom message");
Согласно Javadocs (https://logging.apache.org/log4j/2.x/log4j-api/apidocs/org/apache/logging/log4j/Logger.html), Logger.log ( ) также принимает в качестве первого аргумента объект Level. Я импортировал в свой проект следующую зависимость Maven, поскольку эта функция поддерживается только в версии 2.x:
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.11.1</version>
</dependency>
Я также пробовал использовать эту зависимость:
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j</artifactId>
<version>2.13.0</version>
</dependency>
Но эффект был таким же, когда я пытаюсь написать код logger.log (), Intellisense сообщает мне, что поддерживаются только версии этого метода, которые содержат объект Priority в качестве первого аргумента, а не уровень. Если я попытаюсь принудительно включить объект Level, я получу ошибку компиляции. Скажите, пожалуйста, какая зависимость Maven даст мне желаемый объект Level в качестве первого параметра метода logger.log ().