SLF4J: Error al cargar la clase “org.slf4j.impl.StaticLoggerBinder”

Mi aplicación debe implementarse en tcServer y WebSphere 6.1. Esta aplicación usa ehCache y por lo tanto requiere slf4j como dependencia. Como resultado, he agregado el archivo jar slf4j-api.jar (1.6) a mi paquete de archivos war.

La aplicación funciona bien en tcServer, excepto por el siguiente error:

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. 

Sin embargo, cuando despliegue en WebSphere obtengo java.lang.NoClassDefFoundError: org.slf4j.impl.StaticLoggerBinder .

He comprobado los classpaths de ambos servidores de aplicaciones y no hay otro jar slf4j.

¿Alguien tiene alguna idea de lo que puede estar pasando aquí?

Tuve el mismo problema con WebSphere 6.1. Como señaló Ceki, había toneladas de jarras que WebSphere estaba usando y una de ellas apuntaba a una versión anterior de slf4j.

La reversión de No Opción ocurre solo con slf4j -1.6+, por lo que cualquier elemento anterior arrojará una excepción y detendrá la implementación.

Hay una documentación en el sitio SLf4J que resuelve 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. Espero que ayude a otros que tienen este problema.

Esto es para aquellos que vinieron aquí desde la búsqueda de google.

Si usa Maven solo agregue lo siguiente

   org.slf4j slf4j-api 1.7.5   org.slf4j slf4j-log4j12 1.7.5  

O

   org.slf4j slf4j-api 1.7.5   org.slf4j slf4j-simple 1.6.4  

Necesita agregar el siguiente archivo jar en su classpath: slf4j-simple-1.6.2.jar . Si no lo tienes, descárgalo. Por favor, consulte http://www.slf4j.org/codes.html#multiple_bindings

Simplemente agrega esto a tu pom.xml :

  org.slf4j slf4j-simple 1.7.21  

poner el archivo slf4j-log4j12-1.6.4.jar en el classpath hará el truco.

En algún momento deberíamos ver la nota de la advertencia, por ejemplo. SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. .

Puede buscar el motivo por el que aparece esta advertencia.
Agregar un *slf4j-nop.jar jar de *slf4j-nop.jar , slf4j-simple.jar , slf4j-log4j12.jar , slf4j-jdk14.jar o logback-classic.jar* a la ruta de clases debería resolver el problema.

compile "org.slf4j:slf4j-api:1.6.1" compile "org.slf4j:slf4j-simple:1.6.1"

por ejemplo, agregue el código anterior a su build.gradle o el código correspondiente a pom.xml para el proyecto maven.

Estaba enfrentando el mismo error. Configuré slf4j-api, slf4j-log4j12 y log4j, en mi desarrollo local. Toda la configuración estaba bien, pero la dependencia slf4j-log4j12 que copié de mvnrepository tenía un scope de prueba test . Cuando eliminé esto, todo está bien.

Algunas veces los errores tontos nos rompen la cabeza;)

Si está utilizando maven para la administración de dependencias, puede agregar la siguiente dependencia en pom.xml

  org.slf4j slf4j-log4j12 1.5.6  

Para usuarios que no son de Maven Simplemente descargue la biblioteca y colóquela en la classpath de su proyecto.

Aquí puede ver los detalles: http://www.mkyong.com/wicket/java-lang-classnotfoundexception-org-slf4j-impl-staticloggerbinder/

SLF4j es una abstracción para varios marcos de registro . Por lo tanto, además de tener slf4j, debe incluir cualquiera de su estructura de registro como log4j o logback (etc) en su classpath.
Para tener una idea, consulte el primer paso del bebé en http://logback.qos.ch/manual/introduction.html

Algunas respuestas aquí recomiendan agregar la dependencia slf4j-simple a su archivo maven pom. Es posible que desee comprobar la versión más actual.

En https://mvnrepository.com/artifact/org.slf4j/slf4j-simple encontrará la última versión de SLF4J Simple Binding. Elija el que mejor se adapte a sus necesidades (aún 1.7.25 a partir de 2017-03 es la versión estable a partir de 2018-02) e inclúyalo en su pom.xml.

Versión beta de marzo de 2018

   org.slf4j slf4j-simple 1.8.0-beta2  

Versión estable

   org.slf4j slf4j-simple 1.7.25  

Slf4j es una fachada para los marcos de registro subyacentes como log4j, logback, java.util.logging.

Para conectarse con los marcos subyacentes, slf4j usa un enlace.

  • log4j – slf4j-log4j12-1.7.21.jar
  • java.util.logging – slf4j-jdk14-1.7.21.jar, etc.

El error anterior se produce si el jar vinculante se pierde. Puede descargar este jar y agregarlo a classpath.

Para la dependencia de maven,

  org.slf4j slf4j-log4j12 1.7.21  

Esta dependencia además de slf4j-log4j12-1.7.21.jar, extraerá slf4j-api-1.7.21.jar y también log4j-1.2.17.jar en su proyecto

Referencia: http://www.slf4j.org/manual.html

En el caso de Websphere, tiene una versión anterior de slf4j-api.jar, 1.4.x. o 1.5.x por algún lado. El comportamiento que observa en tcServer, que es el fail-over a NOP, ocurre en las versiones 1.6.0 y posteriores de slf4j. Asegúrese de estar utilizando slf4j-api-1.6.x.jar en todas las plataformas y de que no se coloque ninguna versión anterior de slf4j-api en la ruta de la clase.

Me metí en este tema cuando recibí el siguiente error:

 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. 

cuando estaba usando slf4j-api-1.7.5.jar en mis libs .

A pesar de que probé con todo el complemento sugerido, como slf4j-log4j12-1.7.5.jar , slf4j-simple-1.7.5 slf4j-log4j12-1.7.5.jar , el mensaje de error aún persistía. El problema finalmente se resolvió cuando agregué slf4j-jdk14-1.7.5.jar a las libs de Java.

Obtenga todo el paquete slf4j en http://www.slf4j.org/download.html

Agregue las siguientes dependencias a pom para resolver este problema.

  org.slf4j slf4j-simple 1.7.25 test   org.slf4j slf4j-api 1.7.25  

Estoy trabajando en un proyecto Struts2 + Spring. Por lo tanto, necesita una dependencia slf4j-api-1.7.5.jar .

Si ejecuto el proyecto, recibo un error como

Error al cargar la clase “org.slf4j.impl.StaticLoggerBinder”

slf4j-log4j12-1.7.5.jar mi problema agregando el slf4j-log4j12-1.7.5.jar .

Así que agrega este jar a tu proyecto para resolver el problema.

Estaba enfrentando el problema similar con las aplicaciones Spring-boot-2 con la biblioteca Java 9.

Agregar la siguiente dependencia en mi pom.xml resolvió el problema para mí:

   com.googlecode.slf4j-maven-plugin-log slf4j-maven-plugin-log 1.0.0  

De acuerdo con la documentación oficial SLF4J

Error al cargar la clase org.slf4j.impl.StaticLoggerBinder

Este mensaje de advertencia se informa cuando la clase org.slf4j.impl.StaticLoggerBinder no se pudo cargar en la memoria. Esto sucede cuando no se puede encontrar un enlace SLF4J apropiado 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.

Simplemente agregue este jar junto con slf4j api.jar a su classpath para hacer las cosas. La mejor de las suertes

Agregué esta dependencia para resolver este problema:

 https://mvnrepository.com/artifact/org.slf4j/slf4j-simple/1.7.25 

Como alternativa a la inclusión de jar y las soluciones de maven puro, puede incluirlo desde maven con gradle.

Ejemplo para la versión 1.7.25

 // https://mvnrepository.com/artifact/org.slf4j/slf4j-simple api group: 'org.slf4j', name: 'slf4j-simple', version: '1.7.25' 

Coloque esto dentro de las dependencias de su archivo build.gradle .

Sé que esta publicación es un poco antigua, pero en caso de que alguien más se encuentre con este problema:

Agregue slf4j-jdk14-XXXjar a su CLASSPATH (donde XXX es el número de versión, por ejemplo, slf4j-jdk14-1.7.5.jar).

HTH Peter

Yo uso Jena y agrego la dependencia de fellowing a pom.xml

  ch.qos.logback logback-classic 1.0.13  

Intento agregar slf4j-simple pero simplemente desaparece el error “SLF4J: Error al cargar clase” org.slf4j.impl.StaticLoggerBinder “”, pero logback-classic muestra información más detallada.

El documento oficial

Lo resuelvo agregando esta biblioteca: slf4j-simple-1.7.25.jar Puede descargar esto en la web oficial https://www.slf4j.org/download.html

la solución está indicada en su sitio web oficial:

Error al cargar la clase org.slf4j.impl.StaticLoggerBinder

Este mensaje de advertencia se informa cuando la clase org.slf4j.impl.StaticLoggerBinder no se pudo cargar en la memoria. Esto sucede cuando no se puede encontrar un enlace SLF4J apropiado 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. DESDE 1.6.0 A partir de SLF4J versión 1.6, en ausencia de un enlace, SLF4J se aplicará por defecto a una implementación de registrador sin operación (NOP). Si usted es responsable de empaquetar una aplicación y no le interesa el registro, colocar slf4j-nop.jar en la ruta de clases de su aplicación eliminará este mensaje de advertencia. Tenga en cuenta que los componentes incrustados, como bibliotecas o marcos, no deben declarar una dependencia en ningún enlace SLF4J, sino que solo dependen de slf4j-api. Cuando una biblioteca declara una dependencia en tiempo de comstackción en un enlace SLF4J, impone ese enlace en el usuario final, anulando así el propósito de SLF4J.

solución: he agregado mi proyecto usando maven research en intellij y he elegido el slf4j-jdk14.jar.