增加用户操作记录审计,并用 mq 同步日志如何不影响现有逻辑?

2020-08-21 15:24:06 +08:00
 Vimax

后台管理业务中,想加入一个日志操作记录的功能,将记录通过 MQ 同步给平台的日志系统。

有哪些方案可以实现并且不影响现有业务逻辑?

前提要保证:无论日志同步是否异常,都不能影响现有逻辑。

并且希望是能够个现有业务接耦的。

目前想到的是:

但是要在每个方法上加注解好像是有些麻烦。

1869 次点击
所在节点    Java
5 条回复
xuanbg
2020-08-21 15:41:00 +08:00
接口请求日志包含了用户操作信息,所以可以在网关上面增加接口请求日志来实现。也用不到 mq 。

如果你想要比较纯粹的,数据格式更加友好的操作日志,譬如 xxx 将 yyy 修改为 zzz 这样的,就只能在业务逻辑里面调用日志工具类的静态方法来记录了。这种可以通过 mq 去异步写库。
Vimax
2020-08-21 15:50:23 +08:00
@xuanbg 嗯,是后面那种。日志工具类会侵入代码,出现异常会影响现有业务的正常执行吧。
letitbesqzr
2020-08-21 15:50:42 +08:00
但是要在每个方法上加注解好像是有些麻烦。

---

如果这也不想加的话,可以尝试用 asm 来做,启动参数加上-javaagent:xxx.jar
wysnylc
2020-08-21 15:56:17 +08:00
写个方法,在里面 trycatch 所有异常不就得了
xuanbg
2020-08-21 15:58:15 +08:00
@Vimax 你这种需求,本身就和业务绑定在一起的,不用去想怎么解耦。你开一个线程异步去写日志,失败也不会让主线程崩溃的。反正日志数据又不是必需要记录成功的。其实你通过 mq 去写日志,基本可以认为不会失败了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/700282

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX