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.

¿Cómo configuro mi proyecto Eclipse para usar el puente de log4j 1.2 a 2.16?

Estoy tratando de usar el puente de log4j 1.2 a 2.16 – log4j-1.2-api-2.16.0.jar

Pensé que al usar el archivo bridge no tendría que cambiar mi código.

Estoy utilizando estos tres archivos jar en mi classpath:
log4j-1.2-api-2.16.0.jar
log4j-core-2.16.0.jar
log4j-api-2.16.0.jar

En las propiedades del proyecto Eclipse, en la pestaña Ruta de compilación de Java, Bibliotecas, veo:

Modulepath
>log4j-1.2-api-2.16.0.jar - Log4jBridgeExample/lib
>log4j-api-2.16.0.jar - Log4jBridgeExample/lib
>log4j-core-2.16.0.jar - Log4jBridgeExample/lib
>Biblioteca del sistema JRE [JavaSE-9]
Classpath

Aquí está la definición de la clase.

package test;
import org.apache.log4j.Logger;
public class MyClass {
//Aquí usamos la sintaxis antigua de log4j que existe en miles
//de otras clases en nuestros otros proyectos.
private static Logger logger = Logger.getLogger(MyClass.class);
public static void main(String[] args) {
logger.info("Hola");
}
}

Cuando lo ejecuto, obtengo el siguiente error en tiempo de ejecución:

Excepción en el hilo "main" java.lang.NoClassDefFoundError: org/apache/logging/log4j/Logger
at Log4jBridgeExample/test.MyClass.<clinit>(MyClass.java:6)
Causado por: java.lang.ClassNotFoundException: org.apache.logging.log4j.Logger
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
... 1 más

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El error de tiempo de ejecución sugiere que no se encuentra la clase “org.apache.logging.log4j.Logger”. Esta clase es parte de la API de Log4j 2 y es necesaria para el puente de log4j 1.2 a 2.16.

    Para solucionar el problema, debes agregar el archivo jar de la API de Log4j 2 a tu classpath. Puedes descargarlo desde el sitio web de Apache Log4j (https://logging.apache.org/log4j/2.x/download.html) y agregarlo a tu classpath en Eclipse.

    Además, asegúrate de estar utilizando la sintaxis correcta para configurar Log4j 2 en tu código. Si bien el puente log4j 1.2 a 2.16 te permite utilizar la sintaxis antigua de Log4j 1.2, también puedes cambiar a la nueva sintaxis de Log4j 2, que es más potente y completa en funciones.

    En general, el uso del puente log4j 1.2 a 2.16 puede simplificar tu migración a Log4j 2, pero es importante asegurarse de que todas las dependencias requeridas estén incluidas en tu classpath y que tu código esté correctamente configurado para usar Log4j 2.

Comments are closed.