¿Por qué excluir commons-logging cuando se usa slf4j?

Estoy creando una aplicación muy simple para que pueda entender slf4j, unir bibliotecas, implementar implementaciones de registro, etc. Mi aplicación se basa en el slf4j que usa logback para la implementación de registro. Además, extrae una biblioteca que incluye la biblioteca de registro de bienes comunes.

Dependencias de la aplicación:

  dependencies {
    compile project(':library-with-jcl')

    compile group: 'org.slf4j', name: 'jcl-over-slf4j', version: '1.7.25'
    compile group: 'org.slf4j', name: 'slf4j-api', version: '1.7.25'
    compile group: 'ch.qos.logback', name: 'logback-classic', version: '1.2.3'
}

Dependencias de la biblioteca:

dependencies {
  compile group: 'commons-logging', name: 'commons-logging', version: '1.2'
}

Cuando no lo incluyo jcl-over-slf4j, la biblioteca generará su registro a través de JCL, como se esperaba. Cuando no incluyo jcl-over-slf4j, entonces cualquier registro a través del registrador de JCL es recogido por slf4j y redirigido a logback.

Sigo leyendo artículos en Internet que dicen que debo excluir la commons-loggingdependencia si mi aplicación se basa en slf4j y una biblioteca que depende de JCL. Sin embargo, no parece ser necesario, y no entiendo por qué. ¿En qué situaciones debo excluir la dependencia JCL? ¿Mi ejemplo aquí es demasiado simple para exponer posibles problemas?

Además, no veo sugerencias de que deba excluir, por ejemplo, las dependencias log4j de las bibliotecas que dependen de él si estoy usando el puente log4j. Por qué no? ¿Es JCL un caso especial?

Respuesta 1

En mi aplicación RCP Eclipse 3.7 estaba obteniendo PreferenceStore de la siguiente manera: Activator.getDefault (). GetPreferenceStore () que devuelve un IPreferenceStore. Aquí la propia preferencia del activador ...

Recibo este error del ExampleServer proporcionado cuando escribo un valor en una variable (usando UaExpert), que es un elemento secundario de otro objeto. Imprimí el nivel de acceso donde la excepción es ...

Tengo un gran XML que contiene alrededor de 300 elementos. Necesito modificar 2 o 3 elementos en este xml usando Java. No quiero ir a la clasificación y desorganización convencionales, ya que implica la ...

Estoy viendo la siguiente excepción de error Tipo de Avro no compatible. Los tipos admitidos son nulo, booleano, entero, largo, flotante, doble, cadena, byte [] e IndexedRecord, mis accesorios de productor de kafka son propiedades ...