这篇文章主要介绍了Spring Boot Logback配置日志过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
出于性能等原因,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
Profile 相关的配置可以参考:
- <?xml version="1.0" encoding="UTF-8"?>
- <configuration>
- <include resource="org/springframework/boot/logging/logback/base.xml" />
-
- <!-- roll by day -->
- <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>logs/springboot-logback-demo.%d{yyyy-MM-dd}.log</fileNamePattern>
- <maxHistory>30</maxHistory>
- </rollingPolicy>
- <encoder>
- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg%n</pattern>
- </encoder>
- </appender>
-
- <!-- dev -->
- <logger name="org.springframework.web" level="INFO"/>
- <root level="INFO">
- <appender-ref ref="FILE" />
- </root>
-
- <!-- test or production -->
- <springProfile name="test,prod">
- <logger name="org.springframework.web" level="INFO"/>
- <logger name="com.pdai.springboot" level="INFO"/>
- <root level="INFO">
- <appender-ref ref="FILE" />
- </root>
- </springProfile>
- </configuration>
參考文档
Logback官网
https://logback.qos.ch/manual/layouts.html#conversionWord
Logback官网 文档
https://logback.qos.ch/manual/index.html
Logback中Encoder Pattern
- <encoder>
- <pattern>%d{HH:mm:ss} [%thread][%X{traceId}] %-5level %logger{36} - %msg%n</pattern>
- </encoder>
https://logback.qos.ch/manual/layouts.html#conversionWord
代码示例
@See https://github.com/realpdai/springboot-logback-demo
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持w3xue。