littlebot
Published on 2025-04-15 / 0 Visits
0

【源码】基于Spring Boot和SpEL的日志记录系统

项目简介

本项目是一个基于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】