在SpringBoot启动程序中覆盖log4j2版本

Over-riding the log4j2 version in a Springboot starter(在SpringBoot启动程序中覆盖log4j2版本)

本文介绍了在SpringBoot启动程序中覆盖log4j2版本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们正在尝试构建一个SpringBoot Starter,它将以编程方式创建log4j2配置,因此开发人员不必费心创建log4j2.xml文件。问题是,不同版本的log4j2编程API有所不同。我们已经使用log4j2版本2.5测试了我们的代码,它在独立环境中可以正常工作

现在,我们正在尝试将API包含在SpringBoot Starter中,以便所有SpringBoot应用程序都可以包含此Starter,而不必担心log4j配置。

我们面临的问题是,SpringBoot捆绑了自己的log4j版本,而我们无法控制用户将使用哪个版本的SpringBoot。

有没有办法强制SpringBoot启动程序加载版本2.5的log4j2,否则我们的测试SpringBoot应用程序会报告一些在log4j中找不到的方法

推荐答案

将log4j2依赖项添加到节很方便 在父项目中,如下所示
<dependencyManagement>
    <dependencies>
        ...
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>2.15.0</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        ...
    </dependencies>
</dependencyManagement>

它将规定项目和模块中的所有log4j2版本。 相反,不需要添加一些log4j2依赖项 独立的。

勾选this question post

如果项目的log4j依赖项仅来自 Spring-Boot-starter-log4j2,它有一个明确的设置方式,参考 春季 博客

<properties>
    <log4j2.version>2.17.0</log4j2.version> 
</properties> 

这篇关于在SpringBoot启动程序中覆盖log4j2版本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:在SpringBoot启动程序中覆盖log4j2版本

基础教程推荐