Использование log4j2 с slf4j: java.lang.StackOverflowError
Поэтому я попытался следовать этому (не maven реализация) и требованиям на их веб-сайте для добавления slf4j в log4j. и попытался использовать этот код
public static void main(String[] args) {
Logger logger = LoggerFactory.getLogger(Main.class);
logger.info("test");
}
и добавил следующее в мою библиотеку
- log4j-апи-2.3.jar
- log4j-ядро-2.3.jar
- log4j-sl4j-осущ-2.3.jar
- log4j к sl4j-2.3.jar
- SLF4J-апи-1.7.12.jar
когда я пытаюсь запустить его, я получаю следующую ошибку
Exception in thread "main" java.lang.StackOverflowError
at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:936)
at java.util.concurrent.ConcurrentHashMap.containsKey(ConcurrentHashMap.java:964)
at org.apache.logging.slf4j.SLF4JLoggerContext.getLogger(SLF4JLoggerContext.java:40)
at org.apache.logging.slf4j.Log4jLoggerFactory.newLogger(Log4jLoggerFactory.java:37)
at org.apache.logging.slf4j.Log4jLoggerFactory.newLogger(Log4jLoggerFactory.java:29)
at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:47)
at org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:29)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:284)
at org.apache.logging.slf4j.SLF4JLoggerContext.getLogger(SLF4JLoggerContext.java:41)
at org.apache.logging.slf4j.Log4jLoggerFactory.newLogger(Log4jLoggerFactory.java:37)
at org.apache.logging.slf4j.Log4jLoggerFactory.newLogger(Log4jLoggerFactory.java:29)
at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:47)
at org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:29)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:284)...
Есть идеи, где я иду не так?
Ответы
Ответ 1
Вы создаете цикл вызова с помощью log4j-slf4j-impl-2.3.jar
и log4j-to-slf4j-2.3.jar
.
log4j-slf4j-impl-2.3.jar
- это реализация адаптера, который отправляет вызовы slf4j в log4j.
log4j-to-slf4j-2.3.jar
отправляет вызовы log4j обратно на slf4j. Удалить этот.
Ответ 2
Вы можете увидеть https://www.slf4j.org/codes.html#multiple_bindings как исключить log4j :-)