The SLF4J documentation says that it's best practice for libraries to not include a concrete logging binding.
I'm wondering what to do about transitive dependencies though.
Let's say my library A depends on another library B which depends on commons-logging.
Should the pom.xml for A have an <exclude> for commons-logging or not?
If it does it would also have to include a dependency on jcl-over-slf4j because users of my library would not know that some component might use commons-logging for logging without looking at the pom.xml.
Granted, this way they also have to look at the pom.xml and see slf4j in there.
The other option is to just use slf4j-api in my library A and let the end-user application Z deal with all exclusions and include all necessary bridges once.
What would be considered best practice (if there is one)?