我有一个spring-boot项目,我正在从Log4j过渡到Log4j2。我遵循了此处文档中的步骤。具体来说,我修改了我的log4j.xml,使其符合log4j2标准,并将其重命名为log4j2.xml。我通过使用log4j2.xml中的<Configuration status="debug">
设置启用了对log4j2的调试,这样我就可以看到日志4j2的启动。在启动我的春季启动应用程序时,我使用以下系统设置:
-Dlog4j.configurationFile=log4j2.xml-Dorg.jboss.loging.provider=log4j2
我可以在调试输出中看到我的log4j2.xml启动附加程序等,然后是最后一条log4j2消息,声明:
日志记录提供程序:通过系统属性找到org.jos.loggin.Log4j2LoggerProvider
我正在使用以下罐子:
编译组:"org.slf4j",名称:"slf4j-log4j12",版本:"1.7.12">
编译组:"org.apache.logging.log4j",名称:"log4j-api",版本:"2.4.1">
编译组:"org.springframework.boot",名称:"spring-bot-starter-log4j2",版本:"1.4.0.RELEASE">
但是,我仍然收到来自Log4j:的消息
log4j:WARN找不到记录器的附加程序log4j:WARN请正确初始化log4j系统log4j警告请参阅http://logging.apache.org/log4j/1.2/faq.html#noconfig更多信息
所以我的基本问题是如何关闭log4j并只使用log4j2?我是否会从log4j2收到一条消息,明确告诉我何时正确配置了它?在使用Log4j2时,我缺少什么特殊配置吗?
log4j2只能使用这些依赖项。
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>${log4j2.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>${log4j2.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>${log4j.slf4j.impl.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-web</artifactId>
<version>${log4j2.version}</version>
<scope>runtime</scope>
</dependency>
此外,您还需要从spring boot中排除spring boot启动器日志记录。像这个
Log4j2常见问题解答现在有一个关于排除冲突依赖关系的项目。
我想你需要这个:
<dependencies>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
<scope>provided</scope>
</dependency>
</dependencies>
我的项目使用带有弹簧引导的log4j2。
下面是pom.xml的一部分。请尝试一下。
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</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>
</dependencies>