AOP 版
简介
continew-starter-log-aop 是 ContiNew Starter 日志模块基于 AOP 的实现(@since 2.8.0),通过 @Log 注解选择性记录接口日志(请求/响应信息、异常、耗时等),并提供控制器层访问日志打印,与 Spring Doc 注解联动效果最佳。
主要特性
- 按需记录: 切点为 @Log 注解,按方法/类精细声明记录范围
- 内容可配: 请求头/参数、响应头/参数、IP 归属地、浏览器/OS 等信息均可按需包含或排除
- 访问日志: 控制器层全量访问日志打印,支持敏感参数过滤与超长参数截断(
@since 2.10.0) - 可插拔存储: 默认内存存储(容量 100),实现 LogDao 接口即可接管持久化
与拦截器版互斥
本模块与 拦截器版(log-interceptor) 注册的是同一个自动配置类,不可同时引入。选择建议:需要"Web 层全量记录、不改业务代码"选拦截器版;需要"按 @Log 注解精细声明、与 Spring Doc 注解联动"选本模块。
快速开始
引入依赖
<dependency>
<groupId>top.continew.starter</groupId>
<artifactId>continew-starter-log-aop</artifactId>
</dependency>添加配置
配置详情请查看:top.continew.starter.log.model.LogProperties(@since 1.1.0,由 log-core 提供,与拦截器版共用)。
--- ### 日志配置
continew-starter.log:
# 是否启用(默认 true)
enabled: true
# 包含信息(默认:请求头、请求参数、响应头、响应参数)
includes:
- REQUEST_HEADERS
- REQUEST_PARAM
- RESPONSE_HEADERS
- RESPONSE_PARAM
# 放行路由(默认为空)
exclude-patterns: []
## 访问日志配置(@since 2.10.0)
access-log:
# 是否启用(默认 false,不记录请求日志也支持开启打印访问日志)
enabled: false
# 是否打印请求参数(body/query/form,默认 false)
print-request-param: false
# 是否过滤敏感参数(默认 false)
param-sensitive: false
# 敏感参数字段列表(精确匹配,区分大小写)
sensitive-params: []
# 是否自动截断超长参数值(默认 false)
long-param-truncate: false
# 超长参数检测阈值(单位:字符,默认 2000)
long-param-threshold: 2000
# 超长参数最大保留长度(单位:字符,默认 50)
long-param-max-length: 50
# 超长参数截断后缀(默认 ...)
long-param-suffix: ...可选包含信息(Include 枚举):DESCRIPTION、MODULE、REQUEST_HEADERS、REQUEST_BODY、REQUEST_PARAM、IP_ADDRESS、BROWSER、OS、RESPONSE_HEADERS、RESPONSE_BODY、RESPONSE_PARAM。
使用 @Log 注解
@Log(module = "系统管理", description = "新增用户")
@PostMapping
public RespBody<Void> add(@Valid @RequestBody UserReq req) {
// 方法执行完成(含异常)后记录一条日志:请求与响应信息、耗时、异常信息等
}@Log 注解属性(@since 1.1.0):description(日志描述,优先级高于 @Operation(summary))、module(所属模块,方法 > 类 > @Tag(name))、includes / excludes(在全局配置基础上增减包含信息)、ignore(是否忽略记录)。标注 @Hidden 或 @Operation(hidden = true) 的接口不会被记录。
自定义存储与处理
实现 LogDao 接口并注册为 Bean,即可将日志持久化到数据库等存储(默认实现 DefaultLogDao 为内存存储,容量 100):
@Component
public class CustomLogDao implements LogDao {
// ...
}也可通过继承 AbstractLogHandler 或替换 LogAspect Bean 自定义处理逻辑。
核心依赖
| 依赖 | 描述 |
|---|---|
| top.continew.starter:continew-starter-log-core | 日志模块 - 核心模块(@Log 注解、配置属性、日志模型与 SPI) |