SpringBoot框架技术精讲与项目实战第3讲SpringBoot日志fdteachers@163.comSpringBoot框架技术精讲与项目实战第3讲SpringBoot日志3.1日志框架3.2日志使用2SpringBoot框架技术精讲与项目实战因为SpringBoot日志框架slf4j实际上采用了“门面模式”。我们所有对日志的操作都是经过slf4j这个接口去调用底层的日志实现来完成的。而这样做的好处就是将底层与上层隔离,我们只需要关注上层的操作,当出现了更优秀的日志底层实现我们也能够及时更换而不影响上层的代码。3SpringBoot框架技术精讲与项目实战3.1日志框架3.1.1SpringBoot的日志SpringBoot使用CommonsLogging进行所有内部日志记录,但保留底层日志实现。项目中只要导入spring-boot-starter.jar依赖,就会传递导入spring-boot-starter-logging.jar,从IDEA的Maven面板可以查看依赖关系,如图3-1所示。spring-boot-starter-logging.jar依赖如下三个jar包:logback-classic.jar:它传递依赖于logback-core.jar和slf4j-api.jar。log4j-to-slf4j.jar:它传递依赖于log4j-api.jar和slf4j-api.jar。jltlf4jj它传递依赖于lf4jij4SpringBoot框架技术精讲与项目实战3.1.1SpringBoot的日志市面上常见的日志框架有很多,比如:SLF4J(SimpleLoggingFacadeforJava)、Log4j、Log4j2、Logback、JakartaCommonLogging(JCL)、java.util.logging(JUL)、jboss-logging等。这些日志框架又可分为日志门面和日志实现,如表3-1所示。左边选一个门面(抽象层),右边来选一个实现。SpringBoot底层是Spring框架,Spring框架默认使用JCL,spring-boot-starter-logging采用了SLF4j+Logback的组合形式,其中SLF4j作为日志门面,Logback作为日志实现,开发者通常不需要直接操作日志实现的API。SpringBoot默认会添加SLF4J依赖(slf4j-api.jar)和Logback依赖(logback-core.jar和slf4j-api.jar)。5SpringBoot框架技术精讲与项目实战6SpringBoot框架技术精讲与项目实战日志门面技术日志框架出现的历史顺序:Log4j→JUL→JCL→slf4j→logback→log4j2上述日志框架可以分为两类:一是提供对外接口的日志门面,包括Slf4j和CommonsLogging(JCL)二是提供具体实现的日志系统,也可称为日志框架,包括Log4j、JUL、Logback、Log4j2JCL:JakartaCommonsLogging,是Apache提供的一个通用日志API,它为多个Java日志实现提供统一的接口这种模式也称之为门面模式,这其实也是一个日志接口,底层使用log4j或JDKLogging实现7Sprin...