V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
t202201
V2EX  ›  Java

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

  •  
  •   t202201 · Dec 13, 2022 · 6394 views
    This topic created in 1231 days ago, the information mentioned may be changed or developed.

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

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