Log4J仍然与Log4j2一起运行



我有一个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>

最新更新