Java 后端记录每一次请求,有相关的开源框架吗 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
t202201
V2EX    Java

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

  •  
  •   t202201 2022-12-13 11:54:40 +08:00 6117 次点击
    这是一个创建于 1047 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    44 条回复    2023-01-30 16:32:26 +08:00
    me221
        1
    me221  
       2022-12-13 12:01:08 +08:00
    AOP ?
    aoboco
        2
    aoboco  
       2022-12-13 12:12:09 +08:00
    直接写到文件。然后 fluent 收集
    karott7
        3
    karott7  
       2022-12-13 12:12:50 +08:00 via iPhone
    这还存数据库? aop 记录到日志看不就好了
    t202201
        4
    t202201  
    OP
       2022-12-13 12:15:34 +08:00
    @me221 有什么开箱即用的框架不
    t202201
        5
    t202201  
    OP
       2022-12-13 12:16:35 +08:00
    @karott7 业务需求要持久化存数据库呀
    Chemist
        6
    Chemist  
       2022-12-13 12:16:40 +08:00 via iPhone
    Spring 啊
    xiang0818
        7
    xiang0818  
       2022-12-13 12:32:50 +08:00   2
    /**
    * Http 请求日志记录
    */
    public class HttpFilter extends OncePerRequestFilter {
    bk201
        8
    bk201  
       2022-12-13 12:38:13 +08:00
    最好是写入文件后,自己抓取后写入数据库。比如 2L 的 fluent 收集
    ricky077
        9
    ricky077  
       2022-12-13 12:58:50 +08:00
    自定义拦截器不行吗?
    xlouis
        10
    xlouis  
       2022-12-13 13:01:19 +08:00
    [logbook]( https://github.com/zalando/logbook) 可以看看这个
    cslive
        11
    cslive  
       2022-12-13 13:41:07 +08:00
    log4j 日志保存到数据库
    thetbw
        12
    thetbw  
       2022-12-13 13:43:04 +08:00
    这要啥框架,拦截器记录到日志不就行了。如果需要查询,再把日志推到那些查询工具里
    wizzer
        13
    wizzer  
       2022-12-13 13:45:29 +08:00
    rb6221
        14
    rb6221  
       2022-12-13 13:45:41 +08:00
    直接找个 log 库,然后 log 自己写进文件或者数据库就完事了呗
    blankmiss
        15
    blankmiss  
       2022-12-13 13:54:04 +08:00
    怎么什么都用框架 你每一次请求直接拦截就行了 在拦截的时候做处理操作 不管你是存数据库还是存缓存
    huajia2005
        16
    huajia2005  
       2022-12-13 13:54:12 +08:00
    自定义注解,然后 aop 异步写入数据库,一般项目这种就可以了,大项目就另说了
    pannanxu
        17
    pannanxu  
       2022-12-13 14:01:41 +08:00
    流量高就日志收集,不然就直接 Filter 直接入库
    Vkery
        18
    Vkery  
       2022-12-13 14:51:49 +08:00
    只是记录请求时间 请求地址 响应时长之类的 解析 accsee_log 就行了
    如果需要对应的入参 返回值 用户信息之类的 大概就需要用 aop 或者 filter 里做处理了
    zoyua
        19
    zoyua  
       2022-12-13 15:33:50 +08:00
    这个不需要参考啥开源项目吧,直接拦截存库里就行吧,不过我们业务目前是存 sls 上的
    otakustay
        20
    otakustay  
       2022-12-13 15:55:41 +08:00
    前面架个 nginx 吐日志,再用 fluentd 或者 filebeat 的收集起来入库
    imaple
        21
    imaple  
       2022-12-13 15:58:01 +08:00
    AOP 异步写日志+ELK
    imaple
        22
    imaple  
       2022-12-13 15:58:18 +08:00
    感觉是在做审计相关?
    meeop
        23
    meeop  
       2022-12-13 15:58:38 +08:00
    咋啥都要开源框架啊,自己写一个功能不行吗
    Goooooos
        24
    Goooooos  
       2022-12-13 16:03:26 +08:00
    几年前流行的 ELK
    witcherhope
        25
    witcherhope  
       2022-12-13 16:06:29 +08:00
    说实话几分钟就能写出来的东西
    w292614191
        26
    w292614191  
       2022-12-13 16:10:02 +08:00
    @Goooooos #24 现在流行啥,spirngcloud 用啥收集比较好。
    MX123
        27
    MX123  
       2022-12-13 16:13:47 +08:00
    可以问一下 ChatGPT:
    “是的,Java 后端开发中有许多用于记录请求的开源框架。例如,您可以使用 Apache Log4j 来记录每一次请求。Log4j 是一个强大的日志记录框架,提供了丰富的日志记录功能,并具有高度可配置性。您也可以使用 Slf4j ,它是一个日志抽象层,可以与各种日志实现(如 Log4j ,Logback 等)配合使用。此外,还有许多其他的日志记录框架,您可以根据项目的需要选择适合的框架。”
    amlee
        28
    amlee  
       2022-12-13 16:15:16 +08:00
    这种需求任何框架都能满足吧,根本不必要有所谓单独的开箱即用的框架来实现
    wxw752
        29
    wxw752  
       2022-12-13 16:15:20 +08:00
    先写到本地,filebeat 异步存到 ELK
    amlee
        30
    amlee  
       2022-12-13 16:15:52 +08:00
    @MX123 你是想被站长 ban 掉么。。。
    MX123
        31
    MX123  
       2022-12-13 16:21:34 +08:00
    @amlee 我又没有批量发,而且这里问题问 ChatGPT 可能更快的得到答案。
    MX123
        32
    MX123  
       2022-12-13 16:21:47 +08:00
    @MX123 这类问题
    git00ll
        33
    git00ll  
       2022-12-13 16:27:38 +08:00
    filter
    litchinn
        34
    litchinn  
       2022-12-13 17:32:29 +08:00
    1. logback 有 DBAppender
    2. 如果需要自定义日志内容请参考[美团的这篇文章]( https://tech.meituan.com/2021/09/16/operational-logbook.html)
    3. 如果有条件建议上 loki ,有 docker-plugin ,集成方便。
    loshine1992
        35
    loshine1992  
       2022-12-13 17:43:07 +08:00
    AOP + LOG 库啊。。
    ecric
        36
    ecric  
       2022-12-13 18:18:00 +08:00
    你只说记录请求没有说记录之后干嘛用啊
    fengpan567
        37
    fengpan567  
       2022-12-13 18:37:27 +08:00
    加点钱,直接 aop+elk
    xuanbg
        38
    xuanbg  
       2022-12-13 21:53:32 +08:00
    AOP 把请求数据输出到日志就好了吧?我是在网关上做的,docker 容器输出的日志到 fluentd ,再转发到 ES 存储起来。基本上开箱即用。百度一下 EFK 就行了。
    Nnq
        39
    Nnq  
       2022-12-14 01:53:04 +08:00
    或者你可以用 opentelemetry
    lux182
        40
    lux182  
       2022-12-14 09:41:52 +08:00
    探针 比如 skywalking
    LeegoYih
        41
    LeegoYih  
       2022-12-14 13:31:50 +08:00
    qinxi
        42
    qinxi  
       2022-12-14 21:33:47 +08:00
    用 spring 的话 spring 自带的 CommonsRequestLoggingFilter 就行, 不用自己处理流复制. 只不过没有入库的 不过请求日志都有了. 怎么写都可以, log4j2 直通队列, 或者写文件走 efk
    alienx717
        43
    alienx717  
       2023-01-03 22:48:15 +08:00
    @MX123 哈哈哈,这东西越来越聪明,最后大家都失业了 :》
    cco
        44
    cco  
       2023-01-30 16:32:26 +08:00
    pinpoint
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2628 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 45ms UTC 14:45 PVG 22:45 LAX 07:45 JFK 10:45
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86