如何用mzt-biz-log实现Spring Boot操作日志的终极管理?告别繁琐编码的完整指南

如何用mzt-biz-log实现Spring Boot操作日志的终极管理?告别繁琐编码的完整指南

【免费下载链接】mzt-biz-log 支持Springboot,基于注解的可使用变量、可以自定义函数的通用操作日志组件 【免费下载链接】mzt-biz-log 项目地址: https://gitcode.com/gh_mirrors/mz/mzt-biz-log

mzt-biz-log是一款专为Spring Boot设计的注解驱动式操作日志组件,能帮助开发者轻松记录"谁在什么时间对什么做了什么事",彻底告别手动编写日志代码的繁琐工作。通过简单的注解配置,即可实现灵活高效的操作日志管理,让系统审计和问题排查变得前所未有的简单。

🚀 核心功能一览:为什么选择mzt-biz-log?

注解驱动,零侵入集成

只需在业务方法上添加@LogRecord注解,即可自动记录操作日志,无需修改原有业务逻辑。支持动态变量和SpEL表达式,轻松获取方法参数、返回值等上下文信息。

强大的日志模板引擎

提供灵活的日志模板配置,支持静态文本与动态变量混合,满足各种业务场景的日志格式需求。例如:

@LogRecord(
    success = "{{#order.purchaseName}}下了一个订单,购买商品「{{#order.productName}}」,下单结果:{{#_ret}}",
    type = LogRecordType.ORDER, bizNo = "{{#order.orderNo}}"
)

智能对象Diff比对

自动识别对象字段变化,精准记录数据修改前后的差异,支持自定义字段名称和转换函数。特别适合更新操作的日志记录,清晰展示每一个字段的变更历史。

自定义函数扩展

支持通过实现IParseFunction接口扩展日志解析能力,将ID转换为可读性更强的文本,例如将用户ID转换为用户名,提升日志的可理解性。

灵活的操作人识别

提供两种操作人获取方式:注解直接指定或通过IOperatorGetService接口自动获取,完美适配各种用户认证场景。

📦 快速上手:三步实现操作日志记录

第一步:引入依赖

pom.xml中添加SDK依赖:

<dependency>
    <groupId>io.github.mouzt</groupId>
    <artifactId>bizlog-sdk</artifactId>
    <version>3.0.7-SNAPSHOT</version>
</dependency>

第二步:启用日志记录

在Spring Boot启动类上添加@EnableLogRecord注解:

@SpringBootApplication
@EnableTransactionManagement
@EnableLogRecord(tenant = "com.mzt.test")
public class Main {
    public static void main(String[] args) {
        SpringApplication.run(Main.class, args);
    }
}

第三步:添加日志注解

在需要记录日志的业务方法上添加@LogRecord注解:

@LogRecord(
    success = "{{#order.purchaseName}}下了一个订单,购买商品「{{#order.productName}}」,下单结果:{{#_ret}}",
    fail = "创建订单失败,失败原因:「{{#_errorMsg}}」",
    type = LogRecordType.ORDER, bizNo = "{{#order.orderNo}}"
)
public boolean createOrder(Order order) {
    // 业务逻辑...
    return true;
}

💡 高级功能:释放日志管理全部潜力

对象Diff比对:精准记录数据变更

通过@DiffLogField注解标记需要比对的字段,自动生成字段变更日志:

@Data
public class Order {
    @DiffLogField(name = "订单ID", function = "ORDER")
    private Long orderId;
    
    @DiffLogField(name = "订单号")
    private String orderNo;
    
    @DiffLogField(name = "创建人")
    private UserDO creator;
}

在注解中使用_DIFF函数触发比对:

@LogRecord(success = "更新了订单{_DIFF{#oldOrder, #newOrder}}",
           type = LogRecordType.ORDER, bizNo = "{{#newOrder.orderNo}}")
public boolean updateOrder(Order oldOrder, Order newOrder) {
    // 业务逻辑...
    return true;
}

比对结果示例:

【创建人的用户ID】从【9001】修改为【9002】;【创建人的用户姓名】从【用户1】修改为【用户2】;【订单ID】从【xxxx(99)】修改为【xxxx(88)】

自定义函数:让日志更具可读性

实现IParseFunction接口创建自定义转换函数,将ID转换为有意义的文本:

@Component
public class OrderParseFunction implements IParseFunction {
    @Override
    public String functionName() {
        return "ORDER";
    }
    
    @Override
    public String apply(Object value) {
        // 将订单ID转换为订单名称
        return "订单名称(" + value.toString() + ")";
    }
}

在日志模板中使用自定义函数:

@LogRecord(success = "更新了订单{ORDER{#orderId}}",
           type = LogRecordType.ORDER, bizNo = "{{#order.orderNo}}")

多场景日志分类

支持通过typesubType字段对日志进行多维度分类,满足不同业务场景的日志查询需求:

@LogRecord(
    subType = "MANAGER_VIEW",
    success = "{{#order.purchaseName}}下了一个订单",
    type = LogRecordType.ORDER, bizNo = "{{#order.orderNo}}"
)

🔧 实用配置指南

全局变量管理

通过LogRecordContext在方法中添加临时变量,供日志模板使用:

LogRecordContext.putVariable("innerOrder", order1);

日志记录条件控制

使用condition属性设置日志记录条件,满足特定条件才记录日志:

@LogRecord(
    success = "更新了订单",
    type = LogRecordType.ORDER, 
    bizNo = "{{#order.orderNo}}",
    condition = "{{#order.amount > 1000}}"
)

事务一致性配置

配置日志记录与业务事务的一致性,确保日志记录失败不会影响业务逻辑:

@EnableLogRecord(tenant = "com.mzt.test", joinTransaction = true)

📝 版本更新与兼容性

版本重要更新
3.0.7-SNAPSHOT修复diff内容相同仍记录日志的问题,优化单测
3.0.6提供global变量清除方法
3.0.5修复参数全局传递问题,优化文案比对格式
3.0.3修复日志打印两次问题,支持方法多注解
3.0.0注解重命名为@LogRecord,优化字段命名

⚠️ 注意:2.0.0版本开始对注解名称和字段进行了优化,与1.x版本不兼容。如果是首次接入,推荐使用最新版本3.x。1.x版本文档:doc/document-1.x.md

🚀 开始使用mzt-biz-log

1. 获取源码

git clone https://gitcode.com/gh_mirrors/mz/mzt-biz-log

2. 查看官方文档

详细使用方法请参考:

3. 核心源码结构

💬 技术交流与支持

遇到任何问题或有使用心得,欢迎加入技术交流群讨论:

mzt-biz-log技术交流群

mzt-biz-log通过注解驱动和灵活配置,彻底解放了操作日志管理的生产力,让开发者能够专注于核心业务逻辑。无论是简单的日志记录还是复杂的对象变更追踪,mzt-biz-log都能提供简单高效的解决方案,是Spring Boot项目日志管理的理想选择。

立即尝试mzt-biz-log,体验前所未有的日志管理便捷性!

【免费下载链接】mzt-biz-log 支持Springboot,基于注解的可使用变量、可以自定义函数的通用操作日志组件 【免费下载链接】mzt-biz-log 项目地址: https://gitcode.com/gh_mirrors/mz/mzt-biz-log

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值