使用log4j2和logback

时间:2016-02-03 21:35:08

标签: java logging logback log4j2

我有一个使用Log4j2的应用程序,到目前为止我没有任何问题。今天早上,我添加了第三方库,而第三方库又使用logback进行日志记录。

现在我看到了这个错误:

Error loading configuration  Cause: org.apache.logging.slf4j.Log4jLoggerFactory cannot be cast to ch.qos.logback.classic.LoggerContext

如何解决此错误?

我的应用具有以下依赖关系:

  <dependency>
          <groupId>org.apache.logging.log4j</groupId>
          <artifactId>log4j-api</artifactId>
          <version>2.4.1</version>
      </dependency>
      <dependency>
          <groupId>org.apache.logging.log4j</groupId>
          <artifactId>log4j-core</artifactId>
          <version>2.4.1</version>
      </dependency>
      <dependency>
          <groupId>org.apache.logging.log4j</groupId>
          <artifactId>log4j-slf4j-impl</artifactId>
          <version>2.4.1</version>
      </dependency>
      <dependency>
          <groupId>org.apache.logging.log4j</groupId>
          <artifactId>log4j-jcl</artifactId>
          <version>2.4.1</version>
      </dependency>

第三方库使用以下内容:

 <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.4</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-ext</artifactId>
            <version>1.7.4</version>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.0.12</version>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
            <version>1.0.12</version>
        </dependency>

是否可以同时配置log4j2和logback? 如何修复配置?

1 个答案:

答案 0 :(得分:2)

Logbook使用SLF4J作为其API。你不能同时拥有Log4j-slf4j-impl和Logback jar。如果您不想使用Logback,那么您需要为第三方库声明依赖项,您需要为logback-classic和logback-core添加排除项。