如何使用 Spring Boot 将 Log4j 添加到 maven 项目

Posted

技术标签:

【中文标题】如何使用 Spring Boot 将 Log4j 添加到 maven 项目【英文标题】:How do add Log4j to maven project with Spring Boot 【发布时间】:2021-04-01 00:47:33 【问题描述】:

我有一个使用 springboot 的项目,但是 mvn 找不到任何 log4j-api,尽管我将它包含在依赖项中。我想知道添加它的正确方法是什么,这是我为“mvn install”得到的错误消息:

“在https://devtools.jahia.com/nexus/content/repositories/jahia-releases中找不到org.apache.logging.log4j:log4j-api-java9:pom:2.13.3失败被缓存在本地存储库中,直到archetype的更新间隔过去后才会重新尝试解析或强制更新”

我的 pom.xml 使用依赖管理器进行 spring boot,因为我有不同的父级:

感谢您的回复

【问题讨论】:

可能是您的工作区和系统正在使用冲突的 maven 版本。检查您的 C:\Users*\.m2\wrapper\dists 是否只有 1 个 bin 文件夹。如果没有删除一个并更正您的 Maven 设置。 谢谢你的回复,我其实只有1个bin文件夹 【参考方案1】:
<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>

【讨论】:

为这个依赖添加一些解释 我试过了,但没有任何改变...谢谢 你的问题解决了吗?可以看看你的 pom.xml 吗?【参考方案2】:

不确定您是否仍在寻找答案。但是springboot默认使用commons logging,如果要更改,需要专门排除springboot-starter-logging并添加log4j2依赖。

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<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>``

完整文档: https://docs.spring.io/spring-boot/docs/current/reference/html/howto.html#howto.logging.log4j

【讨论】:

虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。

以上是关于如何使用 Spring Boot 将 Log4j 添加到 maven 项目的主要内容,如果未能解决你的问题,请参考以下文章

如何在spring boot中配置log4j写入文件?

将 log4j2.properties 配置到 Spring Boot 中的问题(使用 gradle)

如何使用 Spring Boot 应用程序初始化 log4j?

如何使用 Spring Boot 微服务 Extern log4j.properties 文件并将其作为 Linux 服务运行?

Spring Boot Webapp:让 Hibernate 使用 log4j

Spring boot中使用log4j