Spring Boot - Logback配置日志要考虑哪些因素
Spring Boot - Logback配置日志
出于性能等原因,Logback 目前是springboot应用日志的标配; 当然有时候在生产环境中也会考虑和三方中间件采用统一处理方式。@pdai
- Spring Boot - Logback配置日志
- 配置时考虑点
- 实现范例
- 综合范例
- 在配置前可以参考如下文章
- 參考文档
- 代码示例
最全的Java后端知识体系 https://www.pdai.tech, 每天更新中...。
配置时考虑点
- 支持日志路径,日志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