name eclipse maven m2eclipse slf4j logback

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

      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-> Finalizar

      O

    • 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

EDIT 2
  • La indicación de error anterior también está presente en m2e versión 1.2.0.20120903-1050
EDIT 3
  • La indicación de error anterior también está presente en m2e versión 1.3.0.20130129-0926
EDIT 4
  • La indicación de error anterior también está presente en m2e versión 1.4.0.20130601-0317
EDIT 5

***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).

https://www.slf4j.org/codes.html#StaticLoggerBinder



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

slf4j


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 su MAVEN_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.