【问题标题】:Completely remove log4j完全删除 log4j
【发布时间】:2022-01-12 15:56:38
【问题描述】:

我有一个来自 start.spring.io 的全新测试项目,带有以下 gradle 文件:

plugins {
  id 'org.springframework.boot' version '2.6.2'
  id 'io.spring.dependency-management' version '1.0.11.RELEASE'
  id 'java'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

repositories {
  mavenCentral()
}

dependencies {
  implementation 'org.springframework.boot:spring-boot-starter-web'
  testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

test {
  useJUnitPlatform()
}

查看依赖项时,我得到以下信息:

|    |    +--- org.springframework.boot:spring-boot-starter-logging:2.6.2
|    |    |    +--- ch.qos.logback:logback-classic:1.2.9
|    |    |    |    +--- ch.qos.logback:logback-core:1.2.9
|    |    |    |    \--- org.slf4j:slf4j-api:1.7.32
|    |    |    +--- org.apache.logging.log4j:log4j-to-slf4j:2.17.0
|    |    |    |    +--- org.slf4j:slf4j-api:1.7.25 -> 1.7.32
|    |    |    |    \--- org.apache.logging.log4j:log4j-api:2.17.0
|    |    |    \--- org.slf4j:jul-to-slf4j:1.7.32
|    |    |         \--- org.slf4j:slf4j-api:1.7.32

如何从项目中完全删除 log4j,我的 gradle 文件应该是什么样子?我想专门使用 logback。

【问题讨论】:

  • 如果您的意图是修复Log4Shell vulnerability,那么您就可以了。 log4j-core 工件包含易受攻击的代码。 log4j-api 工件包含向想要使用 log4j 的应用程序公开的公共 API。

标签: spring-boot logging


【解决方案1】:

你已经摆脱了 log4j。

如果您的依赖项不包括 log4j 核心 jar,那么您就没有登录到 log4j。 api jar 没有任何功能。 api jar 与 log4j-to-slf4j jar 一起确保为直接使用 log4j 而编写的任何依赖项都将其日志重定向到 slf4j,后者将使用 logback。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-13
    • 1970-01-01
    • 2020-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多