qqxx6661 / log-record

使用注解优雅记录系统日志,操作日志,后端埋点等,支持SpEL表达式,自定义上下文,自定义函数,实体类DIFF等其他高阶处理。
Apache License 2.0
916 stars 173 forks source link

关于 Diff 根据内容忽略字段的建议 #76

Closed duanluan closed 1 year ago

duanluan commented 1 year ago
  1. 只修改部分字段时,msg 显示了全部字段。 编辑接口使用 Diff,msg最终为:“【username】从【xxx】变成了【 】 【xxx】……”。实际上因为 MyBatis 配置的更新策略,是不会更新参数中为 null 的字段(此处即 username)的,但是操作日志中却显示了。 建议新增一个全局配置,用于 Diff 时忽略 newObj 中为 null 或为空或指定内容的字段。还可以给@LogRecordDiffField新增一个属性用于单独配置。
  2. 感觉@LogRecordDiffIgnoreField这个注解,可以变成@LogRecordDiffField的一个属性。

关于第 1 点,我现在自己的做法是在implements IOperationLogGetService的类中判断diffDTOList是否不为空,如果不为空的话,获取其中 newValue 为 null 的,再去处理 msg。

qqxx6661 commented 1 year ago

整理了一下诉求:

  1. 新增全局配置:DIFF忽略源或目标为null的字段。
  2. @LogRecordDiffField修改:新增独立忽略null的属性
  3. @LogRecordDiffIgnoreField作为@LogRecordDiffField的属性

感觉3个都是很合理的改动,我争取尽快修改支持。

duanluan commented 1 year ago

请问有进展吗?

qqxx6661 commented 1 year ago

请问有进展吗?

有的。昨天刚写完功能,还在写单元测试。今天争取给你打个SNAPSHOT包,过两天测完发正式版本

qqxx6661 commented 1 year ago

1.5.1-SNAPSHOT 快照版本发布。

新的文档见分支代码里的README中DIFF一节 https://github.com/qqxx6661/log-record/blob/f78abf88d8ed897aa0828daa1841bd8c3c74326b/README.md

晚几天发正式版

qqxx6661 commented 1 year ago

版本号 1.5.1