Springboot内外部logback多环境配置详解

一、概述

SpringBoot官方文档
Springboot 默认读取的是项目内的 resources 中 logback 配置文件。
如果 classpath(resources) 下有logback-test.xml会优先生效,并且会和其他logback文件同时生效。
Springboot 默认日志级别是DEBUG,所以在logback初始化之前,会有DEBUG日志输出。

二、项目内外配置

Springboot内外部logback多环境配置详解_第1张图片

注意:logback-{xxx}.xml不能直接放在resources目录下,否则logback-test.xml会优先生效。

1.application.yml指定 activeprofiles

# Spring配置
spring:
  profiles:
    active: test

2.activeprofiles指定logback-{xxx}.xml

########## logback-{xxx}.xml 文件打包在项目内部 ##########
logging:
   config: classpath:logback/logback-test.xml

########## logback-{xxx}.xml 文件打包在项目外部(去掉classpath) ##########
logging:
  config: /Users/wangfugui/Downloads/logback/logback-test.xml

3.logback-{xxx}.xml



    
    
    
    
    
    
    
    
    

    
    
        
            ${log.pattern}
        
    

    
    
        ${log.basePath}/${log.path}/sys-info.log
        
        
            
            ${log.basePath}/${log.path}/sys-info.%d{yyyy-MM-dd}.log
            
            60
        
        
            ${log.pattern}
        
        
            
            INFO
            
            ACCEPT
            
            DENY
        
    

    
    
        ${log.basePath}/${log.path}/sys-error.log
        
        
            
            ${log.basePath}/${log.path}/sys-error.%d{yyyy-MM-dd}.log
            
            60
        
        
            ${log.pattern}
        
        
            
            ERROR
            
            ACCEPT
            
            DENY
        
    

    
    
        ${log.basePath}/${log.path}/sys-user.log
        
            
            ${log.basePath}/${log.path}/sys-user.%d{yyyy-MM-dd}.log
            
            60
        
        
            ${log.pattern}
        
    

    
    
        
    

    
    

    
    
    
    

    
    
        
    

    
    
        
        
    

三、使用自定义appender

使用Lombok
Lombok 内置 @Slf4j 、@Log4j2 两种日志注解。

@Log4j2(topic = "sys-user")
@Slf4j(topic = "sys-user")

不使用Lombok

Logger logger = LoggerFactory.getLogger("sys-user");

四、logback查找配置源码

org.springframework.boot.logging.logback.LogbackLoggingSystem

    protected String[] getStandardConfigLocations() {
        return new String[]{"logback-test.groovy", "logback-test.xml", "logback.groovy", "logback.xml"};
    }

五、案例源码

github : https://github.com/duke147/springboot-logback.git

到此这篇关于Springboot内外部logback多环境配置详解的文章就介绍到这了,更多相关Springboot logback多环境配置内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

你可能感兴趣的:(Springboot内外部logback多环境配置详解)