如题,用 审计 这个词应该比较准确些,主要需求就是记录管理后台的用户对数据库的增删改和上传文件行为进行记录,方便后面出现问题可以定位到具体用户的具体行为
以前没写过这方面的代码,目前查资料发现 springboot aop 应该可以实现,还有就是自己想的可以在表里面加上用户信息的字段,增删改时就记录这些字段
想问下各位 v 友在实际工作中是如何解决此类问题的? 最佳实践是什么?
1
chendy 2022-04-26 00:50:42 +08:00
就切面就行,或者做一套事件监听机制(麻烦一些,但是泛用性更强,但是也没啥必要)
至于具体切在什么地方,记录那些内容就按业务需求决定 |
2
liangkang1436 2022-04-26 01:10:22 +08:00 via Android
log4j 就是专门干这个的
|
3
liangkang1436 2022-04-26 01:10:44 +08:00 via Android
@liangkang1436 jdbcappender 可以直接写入数据库
|
4
dlmy 2022-04-26 01:36:40 +08:00 3
可以参考一下美团技术团队的做法,谷歌上搜 "如何优雅地记录操作日志?"。
我发不了网站的链接,很尴尬 。。。 |
5
wxyrrcj 2022-04-26 08:01:19 +08:00 via Android
看下若依 eladmin 啥的开源项目 里面都有这个功能的实现。
|
6
aragakiyuii 2022-04-26 08:14:09 +08:00
|
7
rehoni 2022-04-26 08:53:21 +08:00
切面,注解,EL 表达式,接口 Result 体,大概就这么几个元素组成思路
|
8
xuanbg 2022-04-26 08:54:58 +08:00
如果仅仅是记录用户操作和相关数据就很简单,把接口 url 和入参打在日志里面就行了。我都是在网关统一打接口调用日志,监控入参、响应时间,有些接口还监控返回数据。如果要进一步记录 xxx->yyy 的,就只能在接口实现代码里面去调用写业务日志的方法,把修改前的对象和修改后对象传过去就行了。新增、删除也差不多,只是只用传一个对象。
|
9
kytrun 2022-04-26 08:58:49 +08:00
|
10
siweipancc 2022-04-26 09:12:37 +08:00 via iPhone
……我手撸 aop 的跟美团一样的逻辑,几年前搜索不到对应方案自己折腾出来的,那时候竟然还搜不出来这文,fuxx google
|
11
Uyuhz 2022-04-26 09:52:25 +08:00
美团那篇博客不错,前天刚看过
|
12
golangLover 2022-04-26 09:54:42 +08:00 via Android
@siweipancc 牛,美团级别的高手
|
13
anxn OP 感谢各位 V 友!
|
14
KevinBlandy 2022-04-26 17:12:57 +08:00
|
15
iflyapi 2022-04-26 22:33:04 +08:00
正好我也写了一个: https://github.com/flyhero/easy-log
|