SpringBootLogback配置日志过程解析

这篇文章主要介绍了Spring Boot Logback配置日志过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

创新互联长期为成百上千客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为上海企业提供专业的成都网站设计、网站建设上海网站改版等技术服务。拥有10年丰富建站经验和众多成功案例,为您定制开发。

出于性能等原因,Logback 目前是springboot应用日志的标配; 当然有时候在生产环境中也会考虑和三方中间件采用统一处理方式。

配置时考虑点

  • 支持日志路径,日志level等配置
  • 日志控制配置通过application.yml下发
  • 按天生成日志,当天的日志>50MB回滚
  • 最多保存10天日志
  • 生成的日志中Pattern自定义
  • Pattern中添加用户自定义的MDC字段,比如用户信息(当前日志是由哪个用户的请求产生),request信息。此种方式可以通过AOP切面控制,在MDC中添加requestID,在spring-logback.xml中配置Pattern。
  • 根据不同的运行环境设置Profile - dev,test,product
  • 对控制台,Err和全量日志分别配置
  • 对第三方包路径日志控制

实现范例

如下两个例子基本包含了上述的考虑点:

综合范例

application.yml

logging:
 level:
  root: debug
 path: C:/data/logs/springboot-logback-demo
server:
 port: 8080
spring:
 application:
  name: springboot-logback-demo
debug: false

Spring-logback.xml

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


  
  

  
  

  
  

  
  

  
  

  
  

  
  

  
  

  
  

  
  
    
    
      ${LOG_MSG}
    
  

  
  
  

  
  
    
    ${LOG_HOME}/all_${LOG_PREFIX}.log

    
    

      
      ${LOG_DIR}/all_${LOG_PREFIX}%i.log

      
      ${MAX_HISTORY}

      
      
        ${MAX_FILE_SIZE}
      

    

    
    
      ${LOG_MSG}
    
  

  
  
    
    
      ERROR
      DENY
      ACCEPT
    
    
    ${LOG_HOME}/err_${LOG_PREFIX}.log

    
    

      
      ${LOG_DIR}/err_${LOG_PREFIX}%i.log

      
      ${MAX_HISTORY}

      
      
        ${MAX_FILE_SIZE}
      
    

    
    
      ${LOG_MSG}
    
  

  
  
  
  
  
  

  
  

    
    

    
    

    
    
  

Profile 相关的配置可以参考:

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

  
  
   
     
      
      logs/springboot-logback-demo.%d{yyyy-MM-dd}.log  
      30 
      
      
      %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg%n  
     
   
  
  
  
    
    
  

  
  
    
    
    
      
    
   

參考文档

Logback官网

https://logback.qos.ch/manual/layouts.html#conversionWord

Logback官网 文档

https://logback.qos.ch/manual/index.html

Logback中Encoder Pattern


  %d{HH:mm:ss} [%thread][%X{traceId}] %-5level %logger{36} - %msg%n

https://logback.qos.ch/manual/layouts.html#conversionWord

代码示例

@See  https://github.com/realpdai/springboot-logback-demo

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持创新互联。


文章名称:SpringBootLogback配置日志过程解析
网站链接:http://myzitong.com/article/gposho.html