Spring Boot生产环境下logback日志配置

image.png

logback-spring.xml配置



    vhsc-api4
    
    

    
    
        
            %clr([%token]) %d{YY-MM-dd HH:mm:ss.SSS} %clr(%-5level) %logger{32}[%line] - %clr(%msg) %n
        
    

    
    
        
            DEBUG
            ACCEPT
            DENY
        
        ${LOG_PATH}/debug.log
        
        
        
            
            ${LOG_PATH}/debug.log.%d{yyyy-MM-dd}.%i.log
            
            60
            
            
                
                10MB
            
        
        
            [%token] %d %-5level %logger[%line] - %msg%n
        
    

    
    
        
            INFO
            ACCEPT
            DENY
        
        ${LOG_PATH}/info.log
        
            ${LOG_PATH}/info.log.%d{yyyy-MM-dd}.%i.log
            60
            
                10MB
            
        
        
            [%token] %d %-5level %logger[%line] - %msg%n
        
    
    
        
            WARN
            ACCEPT
            DENY
        
        ${LOG_PATH}/warn.log
        
            ${LOG_PATH}/warn.log.%d{yyyy-MM-dd}.%i.log
            60
            
                10MB
            
        
        
            [%token] %d %-5level %logger[%line] - %msg%n
        
    
    
        
            ERROR
            ACCEPT
            DENY
        
        ${LOG_PATH}/error.log
        
            ${LOG_PATH}/error.log.%d{yyyy-MM-dd}.%i.log
            60
            
                10MB
            
        
        
            [%token] %d %-5level %logger[%line] - %msg%n
        
    

    
        
        
        
        
    

    
        
            
            
            
            
            
        
    

    
        
            
            
            
            
        
    


import com.viewhigh.vhsc.platform.common.constant.Const;
import com.viewhigh.vhsc.platform.support.LocalThreadContext;

import ch.qos.logback.classic.pattern.ClassicConverter;
import ch.qos.logback.classic.spi.ILoggingEvent;

/**
 * @Title: TokenConvert.java
 * @Package com.viewhigh.vhsc.platform.log
 * @Description: 当前请求线程调用链token转换器
 * @author maowei
 * @Company www.viewhigh.com
 * @date 2017年8月11日 下午7:45:31
 * @version V2.0
 */
public class LogThreadTokenConvert extends ClassicConverter {
    @Override
    public String convert(ILoggingEvent event) {
        return LogThreadTokenConvert.getThreadToken();
    }

    public static String getThreadToken() {
        String token = (String) LocalThreadContext.getContext().get(Const.TOKEN_KEY);
        if (token == null) {
            return genThreadToken();
        }
        return token;
    }

    public static void clearToken() {
        LocalThreadContext.getContext().remove(Const.TOKEN_KEY);
    }

    private static String genThreadToken() {
        long time = System.currentTimeMillis();
        long threadId = Thread.currentThread().getId();
        String token = time + "-" + threadId;
        LocalThreadContext.getContext().put(Const.TOKEN_KEY, token);
        return token;
    }

    public static void main(String[] args) {
        System.out.println(genThreadToken());
    }
}
import ch.qos.logback.classic.PatternLayout;

/**
 * @author lengyu
 * @ClassName: CustomPatternLayout
 * @Description: 日志装饰类,加入全局调用链唯一号
 * @date 2014年01月19日 下午8:10:06
 */
public class CustomPatternLayout extends PatternLayout {
    static {
        defaultConverterMap.put("token", LogThreadTokenConvert.class.getName());
    }
}
import java.util.Arrays;
import java.util.List;

/**
 * @ClassName: Const
 * @Description: 常量
 * @author lengyu
 * @date 2017年8月4日 下午6:07:28
 */
public class Const {
    // token(用于表单重复提交|日志线程唯一ID)
    public static final String TOKEN_KEY = "token";

}

以下是spring boot application.yml对日志的配置

# 日志配置
logging:
  path: logs/
  config: classpath:cfg/logback-spring.xml

你可能感兴趣的:(Spring Boot生产环境下logback日志配置)