eclipse - name - logback java configuration
SLF4J: Error al cargar la clase "org.slf4j.impl.StaticLoggerBinder". error (9)
- Respecto a Eclipse IDE ( Indigo , Juno y Kepler (versiones de 32 y 64 bits)
- Plataformas : Windows , Ubuntu , Mac
- versión m2e : 1.1.0.20120530-0009 , 1.2.0.20120903-1050 , 1.3.0.20130129-0926 ,
1.4.0.20130601-0317
Información general
El error anterior se produjo después de actualizar el m2e a la versión 1.1. Al eliminar m2e 1.1 y volver a m2e 1.0, todo funcionó bien. Traté de repetir el problema en Windows y Ubuntu y me dio exactamente el mismo error. Se probaron numerosas configuraciones de slf4j-api y logback, pero ninguna parece funcionar.
El error aparece en cualquier proyecto maven incluso sin declarar la dependencia slf4j .
Nuevo proyecto Maven -> maven-archetype-quickstart
y
Nuevo proyecto Maven -> Proyecto simple sin selección de arquetipo
resultado de
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
Pruebas de entornos y configuraciones
Probado con Eclipse Indigo y Eclipse Juno (32 y 64 bit ambos) en Mac, 32 bit en Ubuntu y 64 y 32 bit en Windows. Probó instalaciones recientes de Juno Classic , herramientas de modelado Juno , Kepler Standard , Kepler Modeling Tools y produjo el mismo error.
El error aparece con clean , install , test , deploy , generate-sources , validate , compile , package , integration-test , verify y combinaciones del goal clean con los objetivos de resto. También aparece con los parámetros -e y -X . Hubo un intento de eliminar el repositorio m2e y descargarlo desde cero pero nuevamente sin éxito. Debería mencionar que se probó en 3 máquinas diferentes y caja virtual en todos los sistemas anteriores, pero produjo el mismo error.
Intenté todas las diferentes configuraciones de inicio de sesión (desde 1.0.4 a 1.0.13) que resuelven las dependencias slf4j-api y logback-core , pero todas producen el mismo error:
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version></version>
</dependency>
Intenté todas las configuraciones diferentes (de 1.6.1 a 1.7.5 ) slf4j-simple .
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version></version>
<scope>compile</scope>
</dependency>
Intenté todas las diferentes configuraciones (de 1.6.1 a 1.7.5) log4j-over-slf4j .
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>log4j-over-slf4j</artifactId>
<version></version>
<scope>compile</scope>
</dependency>
Intenté todas las configuraciones slf4j-jdk14 diferentes (de 1.6.1 a 1.7.5 ).
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-jdk14</artifactId>
<version></version>
<scope>compile</scope>
</dependency>
Intenté todas las configuraciones slf4j-log4j12 diferentes (de 1.6.1 a 1.7.5 ).
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version></version>
<scope>compile</scope>
</dependency>
Intentó la configuración de slf4j-nop 1.7.5 .
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-nop</artifactId>
<version>1.7.5</version>
<scope>compile</scope>
</dependency>
Por último, los registros se guardan e imprimen a pesar del error.
Formas de reproducir el error
Descargue Eclipse Juno, Indigo o Kepler 32 o 64 bit (Todas las instalaciones causarán el mismo error).
Instalar m2e - Integración de Maven para Eclipse
- Juno - http://download.eclipse.org/releases/juno
- Kepler - http://download.eclipse.org/releases/kepler
- Indigo - http://download.eclipse.org/technology/m2e/releases/ ( actualmente no disponible )
O
Actualice su versión m2e a 1.1.0.20120530-0009 , o 1.2.0.20120903-1050 , o 1.3.0.20130129-0926 , o 1.4.0.20130601-0317 )
Seleccione Archivo-> Nuevo-> Otro-> Proyecto Maven-> Haga clic en Siguiente-> Seleccionar
maven-archetype-quickstart del catálogo-> FinalizarO
Seleccione Archivo-> Nuevo-> Otro-> Proyecto Maven-> Haga clic en Siguiente-> Seleccione Crear un proyecto simple (omita la selección del arquetipo) -> Información completa del artefacto-> Finalizar
- Haga clic derecho en el proyecto-> Ejecuta como-> instalación limpia (o cualquier otro objetivo mencionado anteriormente)
La primera línea en la consola será
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
PS Los proyectos existentes producirán el mismo error después de actualizar la versión m2e a 1.1.0.20120530-0009 , 1.2.0.20120903-1050 , 1.3.0.20130129-0926 , 1.4.0.20130601-0317
Actualizaciones
EDITAR
sitio de soporte m2e:
La pregunta anterior fue publicada como un error en el sitio de soporte m2e y la respuesta de Igor Fedorenko fue que
No hay planes inmediatos para suprimir este mensaje.
Para ver el error anterior, consulte el sitio oficial de soporte de m2e
- La indicación de error anterior también está presente en m2e versión 1.2.0.20120903-1050
- La indicación de error anterior también está presente en m2e versión 1.3.0.20130129-0926
- La indicación de error anterior también está presente en m2e versión 1.4.0.20130601-0317
***Reported FIXED***
- El error anterior se informa como fijo para m2e versión 1.5.0 / Luna M3 ( objetivo de hito ). La versión aún no está disponible para descargar.
- Luna M3 está programada para el 15 de noviembre .
- La última versión de desarrollo está disponible here
- Más información sobre los hitos m2e que puedes encontrar en el repositorio principal de m2e .
Esto no es un mensaje de error, sino una advertencia. Está muy claramente explicado en su sitio web como:
Este mensaje de advertencia, es decir, no error, se informa cuando no se pueden encontrar proveedores SLF4J en la ruta de la clase. Colocar uno (y solo uno) de slf4j-nop.jar slf4j-simple.jar, slf4j-log4j12.jar, slf4j-jdk14.jar o logback-classic.jar en la ruta de clases debería resolver el problema. Tenga en cuenta que estos proveedores deben apuntar a slf4j-api 1.8 o posterior.
En ausencia de un proveedor, SLF4J se convertirá por defecto en un proveedor de registrador sin operación (NOP).
Había estado mirando el problema al salir a la luz. Cree que esta será una buena lectura para otros que vienen aquí con el mismo problema:
Hay una documentación en el sitio SLf4J para resolver esto. Seguí eso y agregué slf4j-simple-1.6.1.jar a mi aplicación junto con slf4j-api-1.6.1.jar que ya tenía. Esto resolvió mi problema
No has especificado la versión en tu archivo de dependencia maven, puede ser por eso que no está eligiendo el último archivo jar
Además de necesitar otra deppendencia con el id. slf4j-log4j12
artefacto slf4j-log4j12
.
Incluye esto en tu archivo pom
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.5.6</version>
</dependency>
Avísame si el error aún no se resuelve
También te recomiendo que veas este enlace
Pegue este código en su archivo pom.xml. Esto funciona para mi.
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.6.1</version>
<scope>test</scope>
</dependency>
Si está usando Gradle, agregue esto:
dependencies {
...
compile "org.slf4j:slf4j-simple:1.7.9"
...
}
También puedo confirmar este error.
Solución alternativa: es utilizar maven externo dentro de m2eclipse, en lugar de ser maven integrado.
Eso se hace en tres pasos:
1 Instalar maven en la máquina local (la máquina de prueba era Ubuntu 10.10)
mvn --version
Apache Maven 2.2.1 (rdebian-4) Versión de Java: 1.6.0_20 Inicio de Java: / usr / lib / jvm / java-6-openjdk / jre Configuración regional predeterminada: de_DE, codificación de la plataforma: nombre del sistema operativo UTF-8: "linux" versión: "2.6.35-32-genérico" arch: "amd64" Familia: "unix"
2 Run maven externally link cómo ejecutar Maven desde la consola
> cd path-to-pom.xml > mvn test
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building Simple
[INFO] task-segment: [test]
[INFO] ------------------------------------------------------------------------
[...]
[INFO] Surefire report directory: [...]/workspace/Simple/target/surefire-reports
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running net.tverrbjelke.experiment.MainAppTest
Hello World
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.042 sec
Results :
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[...]
3 dentro de m2eclipse: cambiar de maven integrado a maven local
-
mvn --version
está el directorio local de instalación de maven home (mvn --version
, o google para suMAVEN_HOME
, para mí esto me ayudó a que sea/usr/share/maven2
) - en eclipse Menú-> Ventana-> Preferencias-> Maven-> Instalación-> ingrese esa cadena. Entonces deberías haber cambiado a tu nuevo experto externo.
- luego ejecute su proyecto como, por ejemplo, "prueba maven".
El mensaje de error debería desaparecer.
Tuve el problema similar para mi aplicación Spring Boot - Gradle que se ejecuta en Eclipse Luna. Podría resolverlo agregando manualmente una entrada en el .classpath de mi proyecto
<classpathentry sourcepath="C:/Users/<username>/.gradle/caches/modules-2/files-2.1/org.slf4j/slf4j-simple/1.7.7/3150039466ad03e6ef1c7ec1c2cbb0d96710cf64/slf4j-simple-1.7.7-sources.jar" kind="lib" path="C:/Users/<username>/.gradle/caches/modules-2/files-2.1/org.slf4j/slf4j-simple/1.7.7/8095d0b9f7e0a9cd79a663c740e0f8fb31d0e2c8/slf4j-simple-1.7.7.jar"/>
Idea es seguir slf4j solución. Pero cómo implementarlo depende de cada caso. Una forma de solucionarlo es la que utilicé arriba.
Espero que esto ayude.
Tuve un error similar con el mismo resultado con Gradle y pude resolverlo siguiendo:
//compile ''org.slf4j:slf4j-api:1.7.1''
compile group: ''org.apache.logging.log4j'', name: ''log4j-api'', version: ''2.1''
compile group: ''org.apache.logging.log4j'', name: ''log4j-core'', version: ''2.1''
compile group: ''org.apache.logging.log4j'', name: ''log4j-slf4j-impl'', version: ''2.1''
La línea comentada es la que provocó la salida del error. Creo que puedes transferir esto a Maven.