es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿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
Tags:  ,

Answer

  1. Avatar for 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ón dependencies, de la siguiente manera:

    <dependencies>
        <dependency>
            <groupid>org.springframework.boot</groupid>
            <artifactid>spring-boot-starter-logging</artifactid>
        </dependency>
        <dependency>
            <groupid>org.apache.logging.log4j</groupid>
            <artifactid>log4j-to-slf4j</artifactid>
            <version>2.16.0</version>
        </dependency>
    </dependencies>
    

    En el resultado del árbol de dependencias, puedes ver que el artefacto log4j-to-slf4j sigue utilizando la versión 2.14.1. Esto se debe a que la versión utilizada está especificada en la dependencia spring-boot-starter-logging proveniente de la dependencia org.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 dependencia spring-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.

Comments are closed.