Currently logback is defined as implementation dependency, this leads to projects using this library and having a different implementation of slf4j generating a warning. This can easily be fixed by depending on the slf4j-api instead of logback directly. The code already uses the api only.
Example warning:
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/david/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-slf4j-impl/2.12.1/14973e22497adaf0196d481fb99c5dc2a0b58d41/log4j-slf4j-impl-2.12.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/david/.gradle/caches/modules-2/files-2.1/ch.qos.logback/logback-classic/1.2.1/706a8b8206ead3683ec639dd270d11fd948fbb0e/logback-classic-1.2.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
Currently logback is defined as implementation dependency, this leads to projects using this library and having a different implementation of slf4j generating a warning. This can easily be fixed by depending on the slf4j-api instead of logback directly. The code already uses the api only.
Example warning: