J'ai donc essayé de suivre this (implémentation non-maven) et les exigences dans leur site web pour ajouter slf4j à log4j. et a essayé d'utiliser ce code
public static void main(String[] args) {
Logger logger = LoggerFactory.getLogger(Main.class);
logger.info("test");
}
et ajouté ce qui suit à ma bibliothèque
lorsque j'essaie de l'exécuter, j'obtiens l'erreur suivante
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)...
Une idée où je me trompe?
Vous créez une boucle d'appel avec log4j-slf4j-impl-2.3.jar
et log4j-to-slf4j-2.3.jar
.
log4j-slf4j-impl-2.3.jar
est l'implémentation de l'adaptateur qui envoie des appels slf4j à log4j.
log4j-to-slf4j-2.3.jar
renvoie les appels log4j directement à slf4j. Retirez celui-ci.