日志发展史
- 最先出现的是apache开源社区的log4j,这个日志确实是应用最广泛的日志工具,成为了java日志的标准。
- Sun公司在jdk1.4中增加了JUL日志实现,企图对抗log4j,但是却造成了混乱,当然也有其他日志工具的出现,这样必然造成开发者的混乱,因为你的应用可能通过引用其他类库而间接地使用了多个日志工具
- commons-logging(JCL)为解决混乱问题而出现,它抽象出一个接口层,对每个日志实现都适配或者转接,这样这些提供给别人的库都直接使用抽象层即可。
- log4j的作者觉得JCL不够优秀,要自己搞一套更优雅的,于是slf4j日志体系诞生了,并为slf4j实现了logback,性能优于log4j,确实更加优雅
- spring默认依赖了JCL输出日志,但是在Spring.io的博客文章中说如果我们能让时光倒流,可能第一个选择是简单的Java日志Facade(SLF4J).
- 但是由于之前很多代码库已经使用JCL,虽然出现slf4j和JCL之间的桥接转换,但是集成的时候问题依然多多,对很多新手来说确实会很懊恼,因为比单独的log4j时代“复杂”多了。