Spring Boot核心技术系统学习总结(三)日志框架

Spring Boot核心技术系统学习总结(三)日志框架

主要内容:
    1.日志框架分类和选择
    2.slf4j使用参考与原理
    3.其他日志框架统一转换为slf4j
    4.SpringBoot默认配置
    5.切换日志框架

一、日志框架分类和选择
    1.优秀的日志框架:支持异步、自动归档、具有统一的日志接口门面+具体的实现日志实现设计、能便于监控
    2.市面上主要的日志框架
        |-- JUL/JCL/Slf4J/Jboss-logging/Logback/log4j/log4j2
    3.如何选择日志框架呢?
        |-- 按照优秀的日志框架特点
            先选择一个日志门面:JCL/Slf4J/Jboss-logging/
            再选择一个日志实现:Logback/log4j/log4j2/JUL
        |-- 日志框架=日志门面+日志实现,程序只需面向日志门面编成,日志的实现不会影响API,实现了去耦合
    4.SpringBoot日志默认日志选择=Slf4J+Logback
二、Slf4J使用参考与原理
    1.如何使用Slf4J? =>Slf4J官方文档
    Spring Boot核心技术系统学习总结(三)日志框架_第1张图片
    2.项目中只需导入slf4j和logback的依赖jar包即可
    3.每个日志的实现都有自己的配置文件,使用slf4j后,配置文件还是做成日志实现的配置文件
三、其他日志框架统一转换为slf4j
    1.面临的问题
        在项目中,不同的开发框架用的日志框架都不一样,如:项目A(slf4j+logback)、用到的Spring底层使用(Commons-logging)、Hibernate(jboss-logging)...

    2.统一日志记录,使用slf4j+logback
        Slf4J统一日志使用说明
        Spring Boot核心技术系统学习总结(三)日志框架_第2张图片
    3.主要步骤(Spring Boot2.0之前底层默认配置就是这么做的):
        |-- 将系统中的其他日志框架先排除,SpringBoot2.0之前,底层依赖的Spring都剔除了jcl
        |-- 用中间包来替换原有的日志框架,包装层
            SpringBoot日志依赖:


  org.springframework.boot
  spring-boot-starter-logging
  2.1.3.RELEASE
  compile

        Spring Boot 2.0之后呢?  =>  保留了Spring底层对JCL、log4j的依赖,如果想做到统一,那么先去除Commons-logging的依赖
            Spring Boot核心技术系统学习总结(三)日志框架_第3张图片


	
		org.springframework.boot
		spring-boot-starter-web
		
			 
				org.springframework
				spring-jcl
			
		
	
	
	
		org.slf4j
		jcl-over-slf4j
		1.8.0-beta4
	

        |-- 再导入slf4j其他的实现日志方式,默认已经有了logback日志实现
四、SpringBoot默认配置
    1.怎么使用SpringBoot的默认日志框架工作?
     Spring Boot核心技术系统学习总结(三)日志框架_第4张图片
    2.如何输出到日志文件
        简单配置项参考:

logging.file=/juwenzhe/springboot.info.log # 磁盘中的路径+文件名
logging.level.com.juwenzhe=info # 包下日志文件输出级别
logging.pattern.console=%d{yyyy-MM-dd} [%thread] %-5level %logger{50} - %msg%n # %d日期 %线程号 %-5左对齐 %logger日志输出类 %日志消息 换行
logging.pattern.file=%d{yyyy-MM-dd} === [%thread] %-5level %logger{50} - %msg%n

    Spring Boot核心技术系统学习总结(三)日志框架_第5张图片
        实际开发中:推荐使用logging.file可以指定输出的文件名格式
    3.SpringBoot默认配置文件路径:org\springframework\boot\spring-boot\2.1.3.RELEASE\spring-boot-2.1.3.RELEASE-sources.jar!\org\springframework\boot\logging\logback\defaults.xml
五、切换日志框架
    1.自定义日志文件和日志Profile功能
        按照官方文档,只需要在类路径下(即resources/目录下放入logback.xml等配置文件即可)

       Spring Boot核心技术系统学习总结(三)日志框架_第6张图片
        可参照博客:特定业务输出监控日志到独立的日志文件中(自定义业务级别日志)实现自定义业务日志
    注:
        1.在使用log4j2.xml时,应先排除springboot的默认logback的日志实现,在引入log4j2的日志实现依赖


    org.springframework.boot
    spring‐boot‐starter‐web
    
        
            spring‐boot‐starter‐logging
            org.springframework.boot
        
        
    

  org.springframework.boot
  spring‐boot‐starter‐log4j2

        2.在使用log4j2-spring.xml文件名时,xml文件内可以加入以下SpringBoot框架识别的标签


    在这个标签下包裹dev环境下的日志配置


    在这个标签下包裹非dev环境下的日志配置

参考文献
    1.log桥接工具jcl-over-slf4j使用(项目排除commons-logging依赖的影响)

你可能感兴趣的:(Log4j,springboot学习)