1、结论
logback-classic-1.2.x及以下版本,则适配的slf4j 1.0.x - 1.7.x
logback-classic-1.3.x及以上版本,则适配的slf4j 1.8.x及以上
2、原因分析
(1)logback-classic-1.2.x及以下版本
通过org.slf4j.impl.StaticLoggerBinder初始化logback
org.slf4j.impl.StaticLoggerBinder包含在logback-classic中
(2)logback-classic-1.3.x及以上版本
使用ServiceProvider机制,读取/META-INF/services/org.slf4j.spi.SLF4JServiceProvider中的配置初始化logback。
/META-INF/services/org.slf4j.spi.SLF4JServiceProvider文件中的内容为:
ch.qos.logback.classic.spi.LogbackServiceProvider
LogbackServiceProvider实现了org.slf4j.spi.SLF4JServiceProvider接口
而org.slf4j.spi.SLF4JServiceProvider接口是在slf4j-1.8.x及以上版本中才出现
并且org.slf4j.impl.StaticLoggerBinder已从logback删除
所以若logback-classic使用1.3.x,则slf4j要使用1.8.x及以上版本。