java - 使用 log4j2 和 slf4j : java. lang.StackOverflowError

标签 java slf4j log4j2

所以我尝试关注 this (非 Maven 实现)和他们的 web site 中的要求用于将 slf4j 添加到 log4j。并尝试使用此代码

public static void main(String[] args) {
        Logger logger = LoggerFactory.getLogger(Main.class);
        logger.info("test");
    }

并将以下内容添加到我的库中

  • log4j-api-2.3.jar
  • log4j-core-2.3.jar
  • log4j-sl4j-impl-2.3.jar
  • log4j-to-sl4j-2.3.jar
  • slf4j-api-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)...

知道我哪里出错了吗?

最佳答案

您正在使用 log4j-slf4j-impl-2.3.jarlog4j-to-slf4j-2.3.jar 创建一个调用循环。

log4j-slf4j-impl-2.3.jar 是向 log4j 发送 slf4j 调用的适配器的实现。

log4j-to-slf4j-2.3.jar 正在将 log4j 调用直接发送回 slf4j。 删除这个

关于java - 使用 log4j2 和 slf4j : java. lang.StackOverflowError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32366586/

相关文章:

java - 如何在 Spring Security Bean 中模拟自定义用户服务详细信息以进行单元测试?

记录到 Amazon S3

java - 如何将特定的 logback.xml 传递给记录器?

scala - 未检测到项目中的 SLF4J : simplelogger. 属性

java - Log4j 从字符串读取配置

java - 使用 log4j-core-2.4.1 时是否需要 log4j-core

java - 如何检索日期之间的数据

java - RSA key key 静态生成

java - libGDX ParticleEffect 运行时速度变化

spring-boot - 为什么我不能在 log4j2-spring.xml 中使用 springProfile 标签来配置具有不同 spring 配置文件的 log4j2?