一、背景
公司日志系统进行统一,用于记录操作人员的关键操作日志。
二、使用APO+SPEL实现业务日志收集
1、定义@Log
import java.lang.annotation.*;
/**
* 日志注解
*/
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD})
public @interface Log {
enum Actions {
ADD, DELETE, UPDATE
}
enum Business {
User, // 用户
Role, // 角色
Order, // 订单
Product, // 产品
}
/**
* 操作的动作,如增、删、改等
*/
Actions action();
/**
* 操作的业务类型,如用户、角色、订单等
*/
Business business();
/**
* 操作的用户的ID(Spel)
*/
String userId();
/**
* 操作的资源的ID(如订单id)
*/
String objectId();
/**
* 操作之前的原数据(SpEL)
*