南坪网站建设哪里好,wordpress 滑动验证,hao123主页网址之家,个人网站域名操作日志 此版本操作日志主要就是通过AOP拦截器实现的#xff0c;整体主要分为AOP拦截器、自定义函数、日志上下文、扩展接口#xff1b;组件提供了6个扩展点#xff0c;自定义函数、日志上下文、用户信息获取#xff0c;日志保存#xff0c;自定义异常获取#xff0c;入…操作日志 此版本操作日志主要就是通过AOP拦截器实现的整体主要分为AOP拦截器、自定义函数、日志上下文、扩展接口组件提供了6个扩展点自定义函数、日志上下文、用户信息获取日志保存自定义异常获取入参过滤业务可以根据自己的业务特性定制符合自己业务的逻辑。
1. 注解
注解含义LogRecordFunctionSpEL自定义函数扩展LogRecordAnnotation记录操作日志
2. LogRecordAnnotation声明记录操作日志
字段是否必填含义EL表达式bizCode是业务编码是msg是日志描述是result否操作结果默认【成功/(失败:errMsg)】填写后(成功)替换为(填写值)是fileId否文件ID可配置在注解上或者配置到上下文中是bizId否批次ID可配置在注解上或者配置到上下文中是param否操作说明默认为入参填写后为(填写值)入参是extra否任意值是
3. LogRecordFunction声明SpEL自定义函数
字段是否必填含义value否函数名称
函数名称示例
类LogRecordFunction方法LogRecordFunction函数名称value“class”value“method”class_methodvalue“”value“method”methodvalue“class”value“”class_方法名称value“”value“”方法名称
4. LogRecordContext操作日志上下文
例如文件ID操作ID有些时候入参不方便获取可以在方法中放入日志上下文中。
/*** 文件ID*/
public static final String CONTEXT_KEY_NAME_FILE_ID fileId;
/*** 批次ID*/
public static final String CONTEXT_KEY_NAME_BATCH_ID batchId;LogRecordContext.putVariable(LogRecordContext.CONTEXT_KEY_NAME_FILE_ID,123)5. IOperatorGetService扩展接口
public interface IOperatorGetService {/*** 获取登录用户** return 用户*/Object getUser();/*** 后续处理日志记录** param logRecordDTO 日志记录实体*/void insertLogRecord(LogRecordDTO logRecordDTO);/*** 自定义通知返回值错误信息解析** param result result* return errMsg*/String customResponseError(Object result);/*** 入参过滤* param args 方法参数列表** return 入参过滤*/String paramFilter(Object[] args);}6. QuickStart
项目Maven地址
dependencygroupIdio.github.moyifengxue/groupIdartifactIdlog-record-spring-boot-starter/artifactIdversion1.0.0/version
/dependencyGitHub地址
https://github.com/moyifengxue/log-record-spring-boot-starter
QuickStart
项目支持SpringBoot2.x以及升级后的SpringBoot3.x开箱即用因为只是一个简单的AOP拦截器目前无需再配置文件配置数据。
但是用户需要自己实现IOperatorGetService扩展接口将其实现类注入到Spring容器中即可。
6.1 getUser()
一般直接返回用户项目中上下文中的用户信息即可。
6.2 insertLogRecord(LogRecordDTO logRecordDTO)
入参为logRecordDTO即AOP拦截器获取到的数据实现此接口进行自定义的数据存储。
6.3 customResponseErrorparamFilter
此两个方法只是对result数据和param参数做一定的处理。