SpringBoot之logback-spring.xml详细配置
作者:mmseoamin日期:2023-12-11

《logback官网》

在这里插入图片描述

在这里插入图片描述

各种指导文件,有空自己去看,比如:我们需要调整的是布局,直接看Layouts。

在这里插入图片描述

在这里插入图片描述

pom.xml

	
    
        
            dev
            
                dev
            
            
                
                true
            
        
        
            test
            
                test
            
        
        
            prod
            
                prod
            
        
    

需要注意的事项:

  1. SpringBoot默认的root级别是INFO,因此不需要DEBUG级别的日志,除非你想看SpringBoot的某些详细内容或者执行过程。
  2. 虽然可以通过配置文件配置生成日志输出到文件,但是即使你区分了环境,使用了某个环境并且只输出到控制台不输出到文件,还是会生成对应的日志文件。(只配置了输出到控制台,则不会生成文件)
  3. %L是一个转换符号,用于输出调用日志记录器的日志语句所在的代码行号。当使用%L时,会动态获取当前日志语句的代码行号,并将其作为日志消息的一部分进行输出。然而,使用%L会对性能产生一定的影响,尤其是在频繁记录大量日志消息的情况下。这是因为获取代码行号需要进行一些额外的操作,涉及到Java中的反射机制和堆栈跟踪的解析,这些操作会带来额外的开销。具体的性能影响取决于系统的复杂性、日志记录的频率和日志消息的大小。在性能敏感的生产环境中,建议在配置中避免使用%L,以减少不必要的性能损耗。你可以通过设置日志级别、打印线程名称等其他调试信息来辅助定位日志输出位置,而不必使用%L获取行号。总结起来,使用%L可以方便地输出代码行号,但会对性能产生一定的影响。在生产环境中,尽量避免频繁使用%L,以避免不必要的性能损耗。

简单配置







    logback
    
    
    
    
    
    
    
    
    
    
    
        
        
            debug
        
        
            ${CONSOLE_LOG_PATTERN}
            
            UTF-8
        
    
    
    
        ${log.path}/log_info.log
        
            ${FILE_LOG_PATTERN}
            UTF-8
        
        
            ${log.path}/info/log-info-%d{yyyy-MM-dd}.%i.log
            10MB
            30
            50GB
        
        
        
            info
            ACCEPT
            DENY
        
    
    
    
        ${log.path}/log_warn.log
        
            ${FILE_LOG_PATTERN}
            UTF-8
        
        
            ${log.path}/warn/log-warn-%d{yyyy-MM-dd}.%i.log
            100MB
            30
            20GB
        
        
            warn
            ACCEPT
            DENY
        
    
    
    
        ${log.path}/log_error.log
        
            ${FILE_LOG_PATTERN}
            UTF-8
        
        
            ${log.path}/error/log-error-%d{yyyy-MM-dd}.%i.log
            10MB
            30
            50GB
        
        
            ERROR
            ACCEPT
            DENY
        
    
    
    
    
    
        
            
        
    
    
    
        
            
        
    
    
    
        
            
            
            
            
        
    

多环境配置

把原来resources下的logback-spring.xml删除,新增logback文件夹和对应环境的logback xml配置文件

在这里插入图片描述

application.yml

spring:
  application:
    name: '@artifactId@'
  profiles:
    #环境
    active: '@spring.profiles.active@'
logging:
  config: classpath:logback/@spring.profiles.active@.xml

开发环境

application-dev.yml

logging:
  level:
  	# 正式环境打印SQL日志(一般没什么问题不建议开启。)
    com.fu.easycode.mapper: debug

生产环境

application-prod.yml

#按需配置

测试环境

application-test.yml

logging:
  level:
  	# 正式环境打印SQL日志(一般没什么问题不建议开启。)
    com.fu.easycode.mapper: debug
resources/logback/dev.xml


    
    
    
    
    
    
        
            
            ${CONSOLE_LOG_PATTERN}
        
    
    
        
    

resources/logback/prod.xml


    
    
    
    
    
    
    
    
    
    
    
    
    
    
    ${springApplicationName}
    
    
        
            ${path}/%d{yyyy-MM-dd}/%i.log
            ${totalSizeCap}
            ${maxHistory}
            
                ${maxFileSize}
            
            
            ${cleanHistoryOnStart}
        
        
            ${PATTERN_FILE}
        
    
    
        
    

resources/logback/test.xml


    
    
    
    
    
    
    
    
    
    
    
    
    
    
    ${springApplicationName}
    
    
    
    
    
    
    
    
    
        
            
            ${CONSOLE_LOG_PATTERN}
        
    
    
        
            ${path}/%d{yyyy-MM-dd}/%i.log
            ${totalSizeCap}
            ${maxHistory}
            
                ${maxFileSize}
            
            
            ${cleanHistoryOnStart}
        
        
            ${PATTERN_FILE}
        
    
    
        
        
    

总结

建议用第二种方式,虽然麻烦点,但是对不同环境,做了不同的区分。方便阅读。因为springProperty可以和application的配置一起使用,再application里配置了,就可以覆盖掉xml里的默认配置。

彩色日志格式


在这里插入图片描述