1.常规的日志方案有两种:
一种是早期较多采用的独立日志方案,比如Log4j,JUL,Log4j2,Logback;该方式比较简单,但是日志方案单一,不利于做日志整合或方案迁移。(迁移的情况可能较少,但是项目做日志整合的情况还是会比较常见的)
一种是采取日志门面+日志方案的方式,日志方案依旧是上述实现,日志门面则是在日志方案之上做的一层抽象,这层抽象目的在于提高统一的日志访问方式。因为日志门面的存在,让在一个项目中兼容多种日志实现成为可能。(通常的结构会是 日志门面jar+日志方案jar+整合jar)。常用的日志门面方案为SLF4J。
2.SLF4J与各种常规日志框架的整合关系如下:
3.SLF4J做常规日志方案兼容的解决方案如下:
4.SLF4J相关问题可以参考其官网
5.SpringBoot默认采用SLF4J+Logback作为日志方案。依赖关系如下:
start-logging引入logback-classic作为logback解决方案(该包引入了slf4j-api),同时引入jul-to-slf4j和log4j-to-slf4j作为jul和log4j的logback实现支持。
6.Logback的配置方式可以参考Logback中文网
7.配置推荐使用logback-spring.xml的方式,交由Spring-Boot来识别配置,而非Logback框架本身。Spring-Boot来识别可以支持springProfile等高级的环境配置