anxn
V2EX  ›  Java

springboot 记录用户操作日志到数据库最佳实践?

  •  
  •   anxn · Apr 26, 2022 via Android · 6264 views
    This topic created in 1654 days ago, the information mentioned may be changed or developed.

    如题,用 审计 这个词应该比较准确些,主要需求就是记录管理后台的用户对数据库的增删改和上传文件行为进行记录,方便后面出现问题可以定位到具体用户的具体行为

    以前没写过这方面的代码,目前查资料发现 springboot aop 应该可以实现,还有就是自己想的可以在表里面加上用户信息的字段,增删改时就记录这些字段

    想问下各位 v 友在实际工作中是如何解决此类问题的? 最佳实践是什么?

    15 replies  •  2022-04-26 22:33:04 +08:00
    chendy
    chendy
    Apr 26, 2022
    1
    就切面就行,或者做一套事件监听机制(麻烦一些,但是泛用性更强,但是也没啥必要)
    至于具体切在什么地方,记录那些内容就按业务需求决定
    liangkang1436
    liangkang1436
    Apr 26, 2022 via Android
    2
    log4j 就是专门干这个的
    liangkang1436
    liangkang1436
    Apr 26, 2022 via Android
    3
    @liangkang1436 jdbcappender 可以直接写入数据库
    midsolo
    midsolo
    Apr 26, 2022❤️3
    4
    可以参考一下美团技术团队的做法,谷歌上搜 "如何优雅地记录操作日志?"。
    我发不了网站的链接,很尴尬 。。。
    wxyrrcj
    wxyrrcj
    Apr 26, 2022 via Android
    5
    看下若依 eladmin 啥的开源项目 里面都有这个功能的实现。
    rehoni
    rehoni
    Apr 26, 2022
    7
    切面,注解,EL 表达式,接口 Result 体,大概就这么几个元素组成思路
    xuanbg
    xuanbg
    Apr 26, 2022
    8
    如果仅仅是记录用户操作和相关数据就很简单,把接口 url 和入参打在日志里面就行了。我都是在网关统一打接口调用日志,监控入参、响应时间,有些接口还监控返回数据。如果要进一步记录 xxx->yyy 的,就只能在接口实现代码里面去调用写业务日志的方法,把修改前的对象和修改后对象传过去就行了。新增、删除也差不多,只是只用传一个对象。
    siweipancc
    siweipancc
    Apr 26, 2022 via iPhone
    10
    ……我手撸 aop 的跟美团一样的逻辑,几年前搜索不到对应方案自己折腾出来的,那时候竟然还搜不出来这文,fuxx google
    Uyuhz
    Uyuhz
    Apr 26, 2022
    11
    美团那篇博客不错,前天刚看过
    golangLover
    golangLover
    Apr 26, 2022 via Android
    12
    @siweipancc 牛,美团级别的高手
    anxn
    anxn
    OP
    Apr 26, 2022 via Android
    13
    感谢各位 V 友!
    KevinBlandy
    KevinBlandy
    Apr 26, 2022
    14
    你可以试试看这个方式。Aop + Spel

    https://springboot.io/t/topic/4248
    iflyapi
    iflyapi
    Apr 26, 2022
    15
    正好我也写了一个: https://github.com/flyhero/easy-log
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4230 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 98ms · UTC 01:06 · PVG 09:06 · LAX 17:06 · JFK 20:06
    ♥ Do have faith in what you're doing.