springboot 错误日志与其它日志分开保存(每天)


在 resources 目录下,添加logback-spring.xml文件

<?xml version="1.0" encoding="UTF-8"?>



    
    
    
    
    
    
    
    
    
    
    
    

    
    
        
            ${CONSOLE_LOG_PATTERN}
            ${ENCODING}
        
    

    
    
        
            
            logs/%d{yyyy-MM-dd}/info/info.%d{yyyy-MM-dd}.%i.log
            
            30
            30MB
        
        
            INFO             
            ACCEPT       
            DENY   
        
        
            ${NORMAL_LOG_PATTERN}
            ${ENCODING}
        
        
        
            10MB
        
    

    
    
        
        
            
            logs/%d{yyyy-MM-dd}/error/error.%d{yyyy-MM-dd}.%i.log
            
            30
            30MB
        
        
            ERROR            
            ACCEPT       
            DENY   
        
        
            ${NORMAL_LOG_PATTERN}
            ${ENCODING}
        
    

    
    
        
            
            logs/%d{yyyy-MM-dd}/login/login.%d{yyyy-MM-dd}.%i.log
            
            30
            30MB
        
        
            ${NORMAL_LOG_PATTERN}
            ${ENCODING}
        
    

    
    
    
    
    
        
    

    
    
        
            
            
            
        
    

    
    
        
            
            
            
        
    

    
    
        
            
            
            
        
    

自定义日志级别显示的颜色

package com.example.datasource.config;

import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.pattern.color.ANSIConstants;
import ch.qos.logback.core.pattern.color.ForegroundCompositeConverterBase;

public class LogbackColorful extends ForegroundCompositeConverterBase {
    @Override
    protected String getForegroundColorCode(ILoggingEvent event) {
        Level level = event.getLevel();
        switch (level.toInt()){
            //ERROR等级为红色
            case Level.ERROR_INT:
                return ANSIConstants.RED_FG;
            //WARN等级为黄色
            case Level.WARN_INT:
                return ANSIConstants.YELLOW_FG;
            //INFO等级为蓝色
            case Level.INFO_INT:
                return ANSIConstants.BLUE_FG;
            //DEBUG等级为绿色
            case Level.DEBUG_INT:
                return ANSIConstants.GREEN_FG;
            //其他为默认颜色
            default:
                return ANSIConstants.DEFAULT_FG;
        }
    }
}