¿Hay alguna forma de forzar a slf4j a usar un proveedor de registro específico (logback en mi caso)? Al igual que en sus documentos: No se encontraronFuerza slf4j para usar logback
Varios enlaces de la ruta de clase
API SLF4J desinged para enlazar con uno y sólo un marco de registro subyacente a la vez. Si hay más de un enlace presente en la ruta de la clase, SLF4J emitirá una advertencia, enumerando la ubicación de esos enlaces. Cuando hay enlaces múltiples disponibles en la ruta de clase, seleccione uno y solo un enlace que desee usar y quite los otros enlaces. Por ejemplo, si tiene slf4j-> simple-1.6.6.jar y slf4j-nop-1.6.6.jar en la ruta de la clase y desea utilizar el enlace nop (> sin operación), entonces elimine slf4j- simple-1.6.6.jar desde la ruta de clase. Si no es posible eliminar los enlaces superflores, SLF4J aún se enlazará con un marco/implementación de registro. A partir de la versión 1.6.6, SLF4J nombrará la infraestructura/clase de implementación a la que está realmente vinculado.
NOTA La advertencia emitida por SLF4J es solo eso, una advertencia.
En mi caso tengo log4j.jar
, slf4j-log4j12.jar
, log4j-over-slf4j.jar
y todos los frascos logback en la ruta de clase. Sé que es un error tener slf4j-log4j12.jar
y log4j-over-slf4j.jar
juntos, pero mi proyecto es muy grande, y no siempre es fácil encontrar y excluir la dependencia de maven. En este caso, slf4j incluso no imprimió ninguna advertencia, porque usamos solo las configuraciones de logback. Me llevó un día entender este infierno.
Todo lo que quiero es forzar a slf4j a usar el inicio de sesión a través del argumento JVM, por ejemplo, para que pueda imprimir advertencias y pueda excluir tarros en el futuro.
Es una lástima para mí – madhead