一聚教程网:一个值得你收藏的教程网站

热门教程

Springboot内外部logback多环境配置代码解析

时间:2022-06-29 01:57:28 编辑:袖梨 来源:一聚教程网

本篇文章小编给大家分享一下Springboot内外部logback多环境配置代码解析,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。

一、概述

Springboot 默认读取的是项目内的 resources 中 logback 配置文件。

如果 classpath(resources) 下有logback-test.xml会优先生效,并且会和其他logback文件同时生效。

Springboot 默认日志级别是DEBUG,所以在logback初始化之前,会有DEBUG日志输出。

二、项目内外配置

注意: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"};
    }

热门栏目