我有一个Spring Boot应用程序,它使用第三方库。该库使用log4j作为其记录器。当类路径中没有log4j时,我的应用程序无法启动,因为第三方库抛出一个指向缺少log4j的异常。为了处理这个问题,我决定使用log4j2而不是Spring的默认logback。为此,我在pom.xml中添加了以下内容
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>此外,为了允许第三方库工作,我还添加了:
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
<scope>compile</scope>
</dependency>现在,第三方库可以工作了,但是,所有内容都被记录了两次。我该怎么处理呢?
发布于 2020-03-17 23:02:27
不是将log4j依赖项添加到您的项目中,而是将log4j 1.x桥添加到您的项目中,这将确保依赖于log4j的库在不知情的情况下实际与Log4j2一起工作。
因此,请确保删除旧的log4j 1.2依赖项,并添加以下依赖项:
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-1.2-api</artifactId>
<version>2.13.1</version>
</dependency>https://stackoverflow.com/questions/60724597
复制相似问题