日志模块:HTTP Trace Pro
简介
continew-starter-log-httptrace-pro
是 ContiNew Starter 日志模块针对 Spring Boot Actuator 项目 HttpExchange(原 HttpTrace)的二开增强处理实现。
xml
<dependency>
<groupId>top.continew</groupId>
<artifactId>continew-starter-log-httptrace-pro</artifactId>
</dependency>
主要特性
- 版本锁定:涉及依赖已进行版本锁定,使用时无需配置版本
- 支持配置记录的 HTTP 请求日志内容(请求头、请求体、请求参数、IP 归属地、浏览器、操作系统、响应头、响应体、响应参数)
- 支持启用控制台 HTTP 日志输出(类似于 Nginx access log)
- 辅助 Spring Doc 可以实现操作日志功能
- 支持将日志数据保存到任何数据源
配置示例
配置详情请查看:top.charles7c.continew.starter.log.httptracepro.autoconfigure.LogProperties
。
yaml
--- ### 日志配置
continew-starter:
log:
enabled: true
# 包含信息(默认记录请求头、请求参数、响应头、响应参数)
include:
- DESCRIPTION
- MODULE
- REQUEST_HEADERS
- REQUEST_BODY
- IP_ADDRESS
- BROWSER
- OS
- RESPONSE_HEADERS
- RESPONSE_BODY
除了必然记录的请求方式、请求 URL 等信息外,其他记录信息支持灵活配置组合,默认记录请求头、请求参数、响应头、响应参数。
保存日志
通过实现 top.charles7c.continew.starter.log.common.dao.LogDao
日志持久层接口,重写 add
方法实现保存日志记录到任何指定数据源。
java
@RequiredArgsConstructor
public class LogDaoLocalImpl implements LogDao {
private final XxxMapper xxxMapper;
@Override
public void add(LogRecord logRecord) {
// 保存日志记录
}
}
将自行实现的日志持久层 bean 注入到 Spring 容器中。
java
@Configuration
@ConditionalOnEnabledLog
public class LogConfiguration {
/**
* 日志持久层接口本地实现类
*/
@Bean
public LogDao logDao() {
return new LogDaoLocalImpl();
}
}
核心依赖
依赖 | 描述 |
---|---|
continew-starter-core | |
transmittable-thread-local | TTL(线程间传递 ThreadLocal,异步执行时上下文传递的解决方案) |
swagger-annotations-jakarta | Swagger 注解依赖 |