当我使用Logback时,ElasticSearch错误StatusLogger Log4j2找不到日志实现

时间:2019-10-02 20:53:05

标签: java elasticsearch log4j log4j2 logback

我正在使用logback登录我的应用程序

    <dependency>
      <groupId>ch.qos.logback</groupId>
      <artifactId>logback-classic</artifactId>
      <version>1.2.3</version>
    </dependency>

在我的课堂上,我使用

Logger logger = Logger.getLogger(ElasticSearchRepository.class.getName());

在依赖性分析器中,我发现elasticsearch使用log4j-api 2.11.1

    <dependency>
      <groupId>org.elasticsearch</groupId>
      <artifactId>elasticsearch</artifactId>
      <version>6.7.0</version>
    </dependency>

我遇到此错误:

ERROR StatusLogger Log4j2 could not find a logging implementation.
Please add log4j-core to the classpath. 
Using SimpleLogger to log to the console...

我通过从elasticsearch依赖项中排除log4j-api来解决了这个问题,但是另一方面,我遇到了这个错误

Cause: java.lang.ClassNotFoundException: org.apache.logging.log4j.Logger

我已经通过删除排除项恢复了Log4j依赖关系,但是我也遇到了第一个错误,并且由于我已经在使用logback,所以我无意添加log4j jars

1 个答案:

答案 0 :(得分:0)

添加此依赖项似乎可以解决它。

    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-to-slf4j</artifactId>
      <version>2.11.1</version>
    </dependency>

这并不会与足够好的登录发生冲突,唯一可悲的是我添加了一个依赖项来解决错误,而不是出于功能目的。