Java 在Spring Boot应用程序中使用log4j2进行日志记录
我正在努力学习春靴。但我完全搞砸了一个伐木工人。 我有一个简单的pom:Java 在Spring Boot应用程序中使用log4j2进行日志记录,java,spring,maven,logging,log4j2,Java,Spring,Maven,Logging,Log4j2,我正在努力学习春靴。但我完全搞砸了一个伐木工人。 我有一个简单的pom: <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- Logging -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.3</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.3</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.3</version>
</dependency>
</dependencies>
但当应用程序启动时,我看到:
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/Users/me/.m2/repository/ch/qos/logback/logback-classic/1.1.3/logback-classic-1.1.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/Users/me/.m2/repository/org/apache/logging/log4j/log4j-slf4j-impl/2.3/log4j-slf4j-impl-2.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]
当然,log4j2及其配置不起作用
我知道,这是一个非常流行的问题。我在谷歌上搜索了很多答案,但都不适合我。在类路径中有多个SLF4J绑定
- Logback classic,默认情况下包含在spring引导中
- 要使用的Log4j
通过使用maven依赖项排除,您需要在类路径中有一个单独的日志。您必须排除与spring boot starter批处理捆绑在一起的logback,并将其替换为spring-boot-starter-log4j2。检查日志记录和Spring引导 这个pom配置对我来说很好
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-batch</artifactId>
<version>${spring.boot.version}</version>
<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>
<version>${spring.boot.version}</version>
</dependency>
org.springframework.boot
弹簧靴起动器批次
${spring.boot.version}
org.springframework.boot
spring启动程序日志记录
org.springframework.boot
spring-boot-starter-log4j2
${spring.boot.version}
我现在不确定。我是新手,刚刚开始学习这一切。谢谢,我将继续使用Logback。因此,我在POM或etc中无事可做,Logback默认存在,对吗?阅读Logback文档以使用Logback配置日志,并删除与log4j相关的依赖项。或者阅读关于logging.Log4j的spring引导文档,但他想使用log4j2,据我所知,它是积极维护的。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-batch</artifactId>
<version>${spring.boot.version}</version>
<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>
<version>${spring.boot.version}</version>
</dependency>