V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
NoKey
V2EX  ›  程序员

springboot 框架下有没有啥好用的日志框架呢

  •  
  •   NoKey · 46 天前 · 2482 次点击
    这是一个创建于 46 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如一个配置功能,要详细记录用户的操作过程,用于后期审计
    这就涉及用例每一次操作都要记录一个操作日志
    类似的场景还有很多
    当前采用的是在代码每一处要记日志的地方,插入一个保存操作,把相关数据入库;
    然后进一步想到的是把操作发到队列中,有个地方专门消费队列消息一点点的存
    各位大佬,有没有啥好用的框架,可以很省事的干这个事情啊?
    谢谢
    21 条回复    2024-11-07 13:19:43 +08:00
    kd9yYw2RyhQwAwzn
        1
    kd9yYw2RyhQwAwzn  
       45 天前
    给接口写个切面类?然后接 elk/loki/fluent
    EastLord
        2
    EastLord  
       45 天前
    logbook
    ala2008
        3
    ala2008  
       45 天前
    你说的应该日志审计框架
    Goooooos
        4
    Goooooos  
       45 天前
    controller aop 日志
    meeop
        5
    meeop  
       45 天前
    框架干不了这个事,因为这种审计日志需要感知业务逻辑,解析业务字段的

    一般做法是自己封一个业务日志工具,实现业务逻辑,然后在一些统一的入口(比如 api 调用前后,写库前后,接消息前后,数据更新方法前后),统一埋点
    Erroad
        6
    Erroad  
       45 天前
    框架一般做不到。数据操作封装好,用切面输出到 elk/hbase 之类的
    INTOX8O
        7
    INTOX8O  
       45 天前
    https://tech.meituan.com/2021/09/16/operational-logbook.html 可以参考这个,开年的时候也做了类似的功能
    stormynight
        8
    stormynight  
       45 天前
    感觉 envers 很像你说的诉求
    billbur
        9
    billbur  
       45 天前
    chendy
        10
    chendy  
       45 天前
    应该是没有的,因为审计涉及到具体的业务,需求和设计天差地别
    接触过的项目有这么几种思路:
    1. controller 加切面,记录访问路径 + 主要参数
    2. service 加切面,记录方法 + 主要参数
    3. 监听持久层事件/加持久层拦截器,记录增删改和部分关键数据的查
    needkk
        11
    needkk  
       45 天前
    我们也有类似的需求 auditlog 这部分可以用 org.audit4j 的包。但是具体的参数传递保存这些还是得自己写切面类
    chobits336
        12
    chobits336  
       45 天前   ❤️ 1
    https://github.com/mouzt/mzt-biz-log
    感觉这个比较符合,封装的 aop 审计日志,注解里参数用 SpEL 表达式也比较灵活
    ccw4wcc
        13
    ccw4wcc  
       45 天前
    https://github.com/mouzt/mzt-biz-log 用这个,然后自己写业务逻辑,比如同步到消息队列等
    ZekeRuan
        14
    ZekeRuan  
       45 天前
    aop+elk
    woyaobaofu
        15
    woyaobaofu  
       45 天前   ❤️ 1
    AOP logbak
    Belmode
        16
    Belmode  
       45 天前
    这种基本都是手撸的,每家业务需求都不一样。
    即使用了这类框架也是很契合,到最后还是得手撸。
    kilakilia007
        17
    kilakilia007  
       45 天前 via Android
    看需求,如果只是简单的记录 xxx 用户调用了 xxx 接口可以用切面。复杂的还是乖乖地强耦合吧
    xuanbg
        18
    xuanbg  
       45 天前
    我在网关记录接口日志,就是把接口请求数据打出来,基本可以实现按需查询用户操作数据进行追溯。日志平台就是 ELK 很简单。
    xuanbg
        19
    xuanbg  
       45 天前
    对了,我还有个关键操作审计的功能。这个就不是简单打日志了。虽然写入是一个公共的日志服务,就是硬编码把业务数据丢进业务日志队列。但审计端是和业务耦合的,不同的业务有不同的数据模版。不然日志内容你是没法看的,因为根本做不到不同的业务数据格式统一。
    Tiller
        20
    Tiller  
       45 天前
    looveh
        21
    looveh  
       45 天前
    看看 jaVers 这个库呢?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2642 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 07:01 · PVG 15:01 · LAX 23:01 · JFK 02:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.