Java日志框架和Springboot日志框架

 

目录

1.日志门面和日志实现

2.SpringBoot默认日志框架

3.形形色色的日志框架SpringBoot如何整合的

4.更换SpringBoot默认的日志框架

5.注意事项


1.日志门面和日志实现

Java日志框架和Springboot日志框架_第1张图片

 

JCL是commons-logging包下的

JUL是jdk自带,在java.util.logging包下 

Log4j是Apache下的一款开源的日志框架

Logback是由log4j创始人设计的另一个开源日志组件,性能比log4j要好

Log4j 2是对Log4j的升级版,参考了logback的一些优秀的设计

 

Log4j2主要有以下特色

性能提升:Log4j 2包含基于LMAX Disruptor库的下一代异步记录器。在多线程方案中,与Log4j 1.x和Logback相比,异步Logger的吞吐量高18倍,延迟降低了几个数量级

自动重载配置:与Logback一样,Log4j 2可以在修改后自动重新加载其配置。与Logback不同,它在进行重新配置时不会丢失日志事件

无垃圾机制:在稳态日志记录期间,Log4j 2 在独立应用程序中是无垃圾的,而在Web应用程序中是低垃圾的。这样可以减少垃圾收集器上的压力,并可以提供更好的响应时间性能

2.SpringBoot默认日志框架

由下图可知SpringBoot默认使用Slf4j+Logback的方式;

Java日志框架和Springboot日志框架_第2张图片

3.形形色色的日志框架SpringBoot如何整合的

下面我们来想一个问题:假如其他框架不是使用的Slf4j门面,那么是SpringBoot是如何统一使用Slf4j进行输出的呢?

下面我们来看Slf4j官方的一张历史遗留问题的图片,网址为http://www.slf4j.org/legacy.html

可以明显看出,我们可以使用替换包对框架自带的日志门面进行替换,替换的原则清继续往下看

Java日志框架和Springboot日志框架_第3张图片

替换的原则

1、将系统中其他日志框架先排除出去;

2、用中间包来替换原有的日志框架;

3、导入slf4j其他的实现

4.更换SpringBoot默认的日志框架

比如将SpringBoot的日志实现切换为log4j2

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


    
    org.springframework.boot    
    spring-boot-starter-log4j2 

5.注意事项

阿里巴巴编码规范中建议使用Slf4j的api

Java日志框架和Springboot日志框架_第4张图片

 

后续还会继续补充日志配置文件等相关知识,请持续关注,感觉观看~

你可能感兴趣的:(SpringBoot,java,log4j,log4j2,slf4j,spring)