项目简介
本项目是一个基于Spring Boot和SpEL(Spring Expression Language)的日志记录系统,旨在通过注解优雅地记录操作日志。系统支持自定义上下文、自定义函数、实体类DIFF等功能,并能够将日志推送至指定的消息队列(如RabbitMQ、RocketMQ、SpringCloud Stream等)。
项目的主要特性和功能
- 快速接入:使用Spring Boot Starter实现,只需在
pom.xml
中引入依赖即可使用。 - 业务无侵入:无需侵入业务代码,日志切面发生任何异常不会影响原方法执行。
- SpEL解析:支持SpEL表达式,能够动态获取方法参数和上下文信息。
- 实体类Diff:支持相同甚至不同类对象的差异比较。
- 条件注解:满足特定条件后才记录日志,通过SpEL进行解析。
- 自定义上下文:支持手动传递键值对,通过SpEL进行解析。
- 自定义函数:支持注册自定义函数,通过SpEL进行解析。
- 全局操作人ID:自定义操作人ID获取逻辑。
- 指定日志数据管道:自定义操作日志处理逻辑(写数据库、TLog等)。
- 支持重复注解:同一个方法上可以写多个操作日志注解。
- 支持MetaQ:快速配置MetaQ数据管道,将日志写入MetaQ。
- 控制切面执行时机:支持自定义执行成功判断逻辑。
安装使用步骤
第一步:引入依赖
在Spring Boot项目中引入以下依赖:
xml
<dependency>
<groupId>cn.monitor4all</groupId>
<artifactId>log-record-starter</artifactId>
<version>{最新版本号}</version>
</dependency>
第二步:添加数据源配置
支持推送日志数据至以下数据管道:
1. 本地直接处理消息:实现接口IOperationLogGetService
,对日志进行处理。
2. RabbitMQ:配置RabbitMQ的发送者。
3. RocketMQ:配置RocketMQ的发送者。
4. SpringCloud Stream:配置Stream。
第三步:在需要记录系统操作的方法上,添加注解
java
@OperationLog(bizType = "'addressChange'", bizId = "#request.orderId", msg = "'用户 张三 修改了订单的跟进人:从 李四 修改到' + #request.newAddress")
public Response<T> function(Request request) {
// 业务执行逻辑
}
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】