V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
t202201
V2EX  ›  Java

Java 后端记录每一次请求,有相关的开源框架吗

  •  
  •   t202201 · 294 天前 · 4936 次点击
    这是一个创建于 294 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前有需求记录用户的每一次请求,并且需要存数据库,有什么开源项目推荐吗

    44 条回复    2023-01-30 16:32:26 +08:00
    me221
        1
    me221  
       294 天前
    AOP ?
    aoboco
        2
    aoboco  
       294 天前
    直接写到文件。然后 fluent 收集
    karott7
        3
    karott7  
       294 天前 via iPhone
    这还存数据库? aop 记录到日志看不就好了
    t202201
        4
    t202201  
    OP
       294 天前
    @me221 有什么开箱即用的框架不
    t202201
        5
    t202201  
    OP
       294 天前
    @karott7 业务需求要持久化存数据库呀
    kyuuseiryuu
        6
    kyuuseiryuu  
       294 天前 via iPhone
    Spring 啊🥲
    xiang0818
        7
    xiang0818  
       294 天前   ❤️ 2
    /**
    * Http 请求日志记录
    */
    public class HttpFilter extends OncePerRequestFilter {
    bk201
        8
    bk201  
       294 天前
    最好是写入文件后,自己抓取后写入数据库。比如 2L 的 fluent 收集
    ricky077
        9
    ricky077  
       294 天前
    自定义拦截器不行吗?
    ltxlouis
        10
    ltxlouis  
       294 天前
    [logbook]( https://github.com/zalando/logbook) 可以看看这个
    cslive
        11
    cslive  
       294 天前
    log4j 日志保存到数据库
    thetbw
        12
    thetbw  
       294 天前
    这要啥框架,拦截器记录到日志不就行了。如果需要查询,再把日志推到那些查询工具里
    wizzer
        13
    wizzer  
       294 天前
    janus77
        14
    janus77  
       294 天前
    直接找个 log 库,然后 log 自己写进文件或者数据库就完事了呗
    blankmiss
        15
    blankmiss  
       294 天前
    怎么什么都用框架 你每一次请求直接拦截就行了 在拦截的时候做处理操作 不管你是存数据库还是存缓存
    huajia2005
        16
    huajia2005  
       294 天前
    自定义注解,然后 aop 异步写入数据库,一般项目这种就可以了,大项目就另说了
    pannanxu
        17
    pannanxu  
       294 天前
    流量高就日志收集,不然就直接 Filter 直接入库
    Vkery
        18
    Vkery  
       294 天前
    只是记录请求时间 请求地址 响应时长之类的 解析 accsee_log 就行了
    如果需要对应的入参 返回值 用户信息之类的 大概就需要用 aop 或者 filter 里做处理了
    zoyua
        19
    zoyua  
       294 天前
    这个不需要参考啥开源项目吧,直接拦截存库里就行吧,不过我们业务目前是存 sls 上的
    otakustay
        20
    otakustay  
       294 天前
    前面架个 nginx 吐日志,再用 fluentd 或者 filebeat 的收集起来入库
    imaple
        21
    imaple  
       294 天前
    AOP 异步写日志+ELK
    imaple
        22
    imaple  
       294 天前
    感觉是在做审计相关?
    meeop
        23
    meeop  
       294 天前
    咋啥都要开源框架啊,自己写一个功能不行吗
    Goooooos
        24
    Goooooos  
       294 天前
    几年前流行的 ELK
    witcherhope
        25
    witcherhope  
       294 天前
    说实话几分钟就能写出来的东西
    w292614191
        26
    w292614191  
       294 天前
    @Goooooos #24 现在流行啥,spirngcloud 用啥收集比较好。
    MX123
        27
    MX123  
       294 天前
    可以问一下 ChatGPT:
    “是的,Java 后端开发中有许多用于记录请求的开源框架。例如,您可以使用 Apache Log4j 来记录每一次请求。Log4j 是一个强大的日志记录框架,提供了丰富的日志记录功能,并具有高度可配置性。您也可以使用 Slf4j ,它是一个日志抽象层,可以与各种日志实现(如 Log4j ,Logback 等)配合使用。此外,还有许多其他的日志记录框架,您可以根据项目的需要选择适合的框架。”
    amlee
        28
    amlee  
       294 天前
    这种需求任何框架都能满足吧,根本不必要有所谓单独的开箱即用的框架来实现
    wxw752
        29
    wxw752  
       294 天前
    先写到本地,filebeat 异步存到 ELK
    amlee
        30
    amlee  
       294 天前
    @MX123 你是想被站长 ban 掉么。。。
    MX123
        31
    MX123  
       294 天前
    @amlee 我又没有批量发,而且这里问题问 ChatGPT 可能更快的得到答案。
    MX123
        32
    MX123  
       294 天前
    @MX123 这类问题
    git00ll
        33
    git00ll  
       294 天前
    filter
    litchinn
        34
    litchinn  
       294 天前
    1. logback 有 DBAppender
    2. 如果需要自定义日志内容请参考[美团的这篇文章]( https://tech.meituan.com/2021/09/16/operational-logbook.html)
    3. 如果有条件建议上 loki ,有 docker-plugin ,集成方便。
    loshine1992
        35
    loshine1992  
       294 天前
    AOP + LOG 库啊。。
    ecric
        36
    ecric  
       294 天前
    你只说记录请求没有说记录之后干嘛用啊
    fengpan567
        37
    fengpan567  
       294 天前
    加点钱,直接 aop+elk
    xuanbg
        38
    xuanbg  
       294 天前
    AOP 把请求数据输出到日志就好了吧?我是在网关上做的,docker 容器输出的日志到 fluentd ,再转发到 ES 存储起来。基本上开箱即用。百度一下 EFK 就行了。
    Nnq
        39
    Nnq  
       294 天前
    或者你可以用 opentelemetry
    lux182
        40
    lux182  
       293 天前
    探针 比如 skywalking
    LeegoYih
        41
    LeegoYih  
       293 天前
    qinxi
        42
    qinxi  
       293 天前
    用 spring 的话 spring 自带的 CommonsRequestLoggingFilter 就行, 不用自己处理流复制. 只不过没有入库的 不过请求日志都有了. 怎么写都可以, log4j2 直通队列, 或者写文件走 efk
    alienx717
        43
    alienx717  
       273 天前
    @MX123 哈哈哈,这东西越来越聪明,最后大家都失业了 :》
    cco
        44
    cco  
       246 天前
    pinpoint
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1575 人在线   最高记录 6067   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 00:22 · PVG 08:22 · LAX 17:22 · JFK 20:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.