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

推荐一个 spring mvc 的请求日志输出框架

  •  
  •   manymobi · 2022-08-27 14:04:59 +08:00 · 1649 次点击
    这是一个创建于 849 天前的主题,其中的信息可能已经有所发展或是发生改变。

    功能介绍

    • 打印日志策略设置
      • 路径
      • 请求方式 httpMethods
      • 内容类型
      • 限制 body 内容大小
    • 自定义输出内容,扩展 com.manymobi.servlet.http.log.Logger

    输出示例

    2022-05-29 23:24:40.025  INFO 431055 --- [nio-8080-exec-6] com.manymobi.servlet.http.log.LogFilter  : request POST http://127.0.0.1:8080/d {method=POST, ip=127.0.0.1, parameter=a=b, header={content-length=15, postman-token=489cf0b9-329c-48fc-913f-e4d6b69fb3f1, host=127.0.0.1:8080, connection=keep-alive, content-type=application/json, accept-encoding=gzip, deflate, br, accept=*/*, user-agent=PostmanRuntime/7.29.0}, uri=/d, url=http://127.0.0.1:8080/d}
    2022-05-29 23:24:40.026  INFO 431055 --- [nio-8080-exec-6] com.manymobi.servlet.http.log.LogFilter  : request body={"test":"test"}
    2022-05-29 23:24:40.027  INFO 431055 --- [nio-8080-exec-6] com.manymobi.servlet.http.log.LogFilter  : response status=200 time=2ms body={"key":"value"} header={Keep-Alive=timeout=60, Transfer-Encoding=chunked, Connection=keep-alive, Date=Sun, 29 May 2022 15:24:40 GMT, Content-Type=application/json}
    

    项目地址: https://github.com/manymobi/servlet-http-log

    7 条回复    2022-08-28 14:39:57 +08:00
    zhangxzh
        1
    zhangxzh  
       2022-08-27 19:39:36 +08:00 via Android
    来个 wwbflux 的吧
    zhangxzh
        2
    zhangxzh  
       2022-08-27 19:40:41 +08:00 via Android
    @zhangxzh 写错了不能修改🙄
    manymobi
        3
    manymobi  
    OP
       2022-08-27 22:50:17 +08:00
    @zhangxzh jakarta 和 webflux 我都有考虑要弄,只是没有确定时间
    wxyrrcj
        4
    wxyrrcj  
       2022-08-28 05:52:30 +08:00 via Android
    tlog?
    changdy
        5
    changdy  
       2022-08-28 10:31:33 +08:00
    spring 自带的有个 CommonsRequestLoggingFilter
    另外好奇下是怎么实现的 ,
    ps op 的隐私在 github 项目上有泄露 .
    pps 想请教个问题.. op 知道 日志系统是怎么获取 当前日志触发的行数以及 logger 吗?

    比如
    ```
    2022-05-29 23:24:40.027 INFO 431055 --- [nio-8080-exec-6] com.manymobi.servlet.http.log.LogFilter : response status=200 time=2ms body={"key":"value"} header={Keep-Alive=timeout=60, Transfer-Encoding=chunked, Connection=keep-alive, Date=Sun, 29 May 2022 15:24:40 GMT, Content-Type=application/json}
    ```
    中就是 `com.manymobi.servlet.http.log.LogFilter ` 这部分 , 感觉 Thread.getAllStackTraces()会有性能问题 ..

    最近想做结构化日志 遇到了这个问题.
    manymobi
        6
    manymobi  
    OP
       2022-08-28 14:20:43 +08:00
    @changdy 日志行数 输出会有性能问题. 我一般都不输出 行数
    op 的隐私 是什么意思?
    manymobi
        7
    manymobi  
    OP
       2022-08-28 14:39:57 +08:00
    @wxyrrcj 不是,这个只是单纯打印请求和响应日志
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1092 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 23:01 · PVG 07:01 · LAX 15:01 · JFK 18:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.