SpringBoot系列之集成logback实现日志打印(篇二)

SpringBoot系列之集成logback实现日志打印(篇二)

基于上篇博客SpringBoot系列之集成logback实现日志打印(篇一)之后,再写一篇博客进行补充

logback是一款开源的日志框架,内核重写了,是基于log4j基础进行改良的。其官网为http://logback.qos.ch/index.html,logback在性能上有很大提升,拥有更多特性。

  • logback-core:是其它两个模块的基础模块
  • logback-classic:log4j的改良版本,实现了Slf4j API
  • logback-access:集成Servle环境时就需要logback了,可以提供Http访问的接口

简单介绍一下日志级别,按照从低到高排序:trace < debug < info < warn < error,eg:假如日志级别为info,则只会打印info级别及其高级别的日志,所以在项目中,可以通过调高日志级别,打少点日志,反之,想打多点就调低日志级别

SpringBoot支持的不同日志系统的配置文件:

Logging System Customization
Logback logback-spring.xml, logback-spring.groovy, logback.xml, or logback.groovy
Log4j2 log4j2-spring.xml or log4j2.xml
JDK (Java Util Logging) logging.properties

从前面的学习,SpringBoot系列之日志框架使用教程,我们知道了SpringBoot默认集成的是logback的,所以本博客介绍一下logback自定义配置的基本用法

SpringBoot官方的建议也是推荐使用logback-spring.xml版本的

When possible, we recommend that you use the -spring variants for your logging configuration (for example, logback-spring.xml rather than logback.xml). If you use standard configuration locations, Spring cannot completely control log initialization.

原因是为什么?我们在官网往下翻,可以发现:

Because the standard logback.xml configuration file is loaded too early, you cannot use extensions in it. You need to either use logback-spring.xml or define a logging.config property.

翻译过来就是大概意思就是logback.xml在SpringBoot启动之前就被加载了,也就是ApplicationContext启动之前就被加载了,很显然,这样是不可以加载到SpringBoot的一下高级配置,而logback-spring.xml是支持的,比如在官网就列举了如下两种高级拓展配置,这两种配置只能用logback-spring.xml才是可以使用的,logback.xml是不支持的

在这里插入图片描述

ok,profile-specific configuration指的就是多环境配置


    



    



    

例子,dev环境用一个日志格式,非dev环境用另外一种日志格式
然后在application.properties,配置环境:spring.profiles.active= dev


    
        
        
            
            ${LOG_PATTERN}
            
            
                %d{yyyy-MM-dd HH24:mm:ss.SSS} {%thread} %-5level %logger{50} - %msg%n
            
        
    

ok,给出自己的logback-spring.xml:



    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    


    
    
        
        
            
            ${LOG_PATTERN}
            
            
                %d{yyyy-MM-dd HH24:mm:ss.SSS} {%thread} %-5level %logger{50} - %msg%n
            
        
    
    
    
        ${LOG_HOME}/all_${LOG_PREFIX}.log
        
        
            
            ${LOG_DIR}/all_${LOG_PREFIX}%d{yyyy-MM-dd}.%i.log
            
            ${MAX_HISTORY}
            
                
                ${MAX_FILE_SIZE}
            
        
        
        
            ${LOG_PATTERN}
        
    

    
    
        ${LOG_HOME}/err_${LOG_PREFIX}.log
        
        
            
            ${LOG_DIR}/err_${LOG_PREFIX}%d{yyyy-MM-dd}.%i.log
            
            ${MAX_HISTORY}
            
                
                ${MAX_FILE_SIZE}
            
        
        
        
            ${LOG_PATTERN}
        
    

    
    
    

    
    
    

    
    

    
    
    

    
    
        
        
        
    


附录:
logging manual:SpringBoot日志官方手册
example source:日志配置github代码下载链接

你可能感兴趣的:(SpringBoot系列之集成logback实现日志打印(篇二))