Vimax
V2EX  ›  Java

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

  •  1
     
  •   Vimax · Aug 21, 2020 · 2600 views
    This topic created in 2094 days ago, the information mentioned may be changed or developed.

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

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

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

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

    目前想到的是:

    • AOP 后置增强

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

    5 replies    2020-08-21 15:58:15 +08:00
    xuanbg
        1
    xuanbg  
       Aug 21, 2020   ❤️ 1
    接口请求日志包含了用户操作信息,所以可以在网关上面增加接口请求日志来实现。也用不到 mq 。

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

    ---

    如果这也不想加的话,可以尝试用 asm 来做,启动参数加上-javaagent:xxx.jar
    wysnylc
        4
    wysnylc  
       Aug 21, 2020
    写个方法,在里面 trycatch 所有异常不就得了
    xuanbg
        5
    xuanbg  
       Aug 21, 2020   ❤️ 1
    @Vimax 你这种需求,本身就和业务绑定在一起的,不用去想怎么解耦。你开一个线程异步去写日志,失败也不会让主线程崩溃的。反正日志数据又不是必需要记录成功的。其实你通过 mq 去写日志,基本可以认为不会失败了。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2946 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 45ms · UTC 15:11 · PVG 23:11 · LAX 08:11 · JFK 11:11
    ♥ Do have faith in what you're doing.