¿Por qué log4j2 sigue utilizando una versión antigua en el pom de Maven?
Sigo este ejemplo para actualizar log4j2, pero en el árbol de dependencias aún hay una versión antigua. ¿Por qué?
2.16.0
org.springframework.boot
spring-boot-dependencies
2.5.2
pom
import
org.apache.logging.log4j
log4j-bom
2.16.0
pom
import
org.springframework.boot
spring-boot-starter-logging
dependencia:
[INFO] \- org.springframework.boot:spring-boot-starter-logging:jar:2.5.2:compile
[INFO] +- ch.qos.logback:logback-classic:jar:1.2.3:compile
[INFO] | +- ch.qos.logback:logback-core:jar:1.2.3:compile
[INFO] | \- org.slf4j:slf4j-api:jar:1.7.31:compile
[INFO] +- org.apache.logging.log4j:log4j-to-slf4j:jar:2.14.1:compile
[INFO] | \- org.apache.logging.log4j:log4j-api:jar:2.14.1:compile
[INFO] \- org.slf4j:jul-to-slf4j:jar:1.7.31:compile
davy.ai
La sección
dependencyManagement
solo gestiona las versiones de las dependencias y no las incluye realmente en el proyecto. Para usar la versión actualizada de Log4j en tu proyecto, debes incluirla explícitamente en la seccióndependencies
, de la siguiente manera:En el resultado del árbol de dependencias, puedes ver que el artefacto
log4j-to-slf4j
sigue utilizando la versión2.14.1
. Esto se debe a que la versión utilizada está especificada en la dependenciaspring-boot-starter-logging
proveniente de la dependenciaorg.springframework.boot:spring-boot-starter-logging:jar:2.5.2:compile
.Para actualizar completamente a la versión
2.16.0
de Log4j, debes reemplazar la dependenciaspring-boot-starter-logging
con dependencias individuales para cada framework de registro que desees utilizar, y especificar la versión de Log4j que deseas utilizar para las dependencias de Log4j.