引入适配层,让其决定使用哪种日志系统,调用端仅关心打印日志,而无需关注如何打印日志
slf4j只做两件事情:[提供日志接口][提供获取具体日志对象的方法]
slf4j-simple、logback都是slf4j的具体实现,log4j并不直接实现slf4j,但是有专门的桥接层slf4j-log4j12来实现slf4j。
slf4j不提供日志的具体实现,只有slf4j而没有具体实现是无法打印日志的
所有slf4j的实现,在提供的jar包路径下,一定是有”org/slf4j/impl/StaticLoggerBinder.class”存在的
我们自己的系统中使用了logback这个日志系统 我们的系统使用了A.jar,A.jar中使用的日志系统为log4j 我们的系统又使用了B.jar,B.jar中使用的日志系统为slf4j-simple 这样,我们的系统就不得不同时支持并维护logback、log4j、slf4j-simple三种日志框架,非常不便。 解决这个问题的方式就是引入一个适配层,由适配层决定使用哪一种日志系统,而调用端只需要做的事情就是打印日志而不需要关心如何打印日志,slf4j或者commons-logging就是这种适配层。