SpringBoot 中如何记录调用外部接口的操作日志?

2022-02-18 12:20:48 +08:00
 sinnosong1

使用 httpclient 调用外部接口时,如何记录接口调用时长,调用接口 uri 、method 、传入参数、接口响应?

3050 次点击
所在节点    Java
13 条回复
xuanbg
2022-02-18 12:25:02 +08:00
搞一个 HttpHelper ,对外暴露几个请求方法,在里面打日志就可以了。
zgc27wo
2022-02-18 12:35:06 +08:00
或者忽略 httpclient ,直接切面打日志或者设计为按注解切面打日志还更灵活通用一点.
sinnosong1
2022-02-18 12:48:45 +08:00
@zgc27wo 我自己的想法也是 加注解然后切面打日志,但是不知道要怎么拦截发送的 request 请求,然后获取想要的那些数据
potatowish
2022-02-18 13:01:14 +08:00
写一个 okhttp 拦截器 HttpLoggingInterceptor ,级别设成 BODY
wolfie
2022-02-18 14:40:15 +08:00
有 RequestInterceptor 、ResponseInterceptor ,没给环绕的。

手动创建然后交给 spring 管理,上 aop 环绕切 execute 。
dqzcwxb
2022-02-18 14:46:47 +08:00
建议从 nginx 或者 tomcat 入手,项目本身增加这个功能意义不大
sprite82
2022-02-18 16:00:33 +08:00
封装一个 httpclientUtils
thetbw
2022-02-18 16:19:27 +08:00
自己封装个 http 工具
issakchill
2022-02-18 16:50:49 +08:00
之前项目逼于无奈用了 forest 这个 http 客户端框架 日志功能挺全的
貌似 feign 的日志也可以
warcraft1236
2022-02-18 16:57:43 +08:00
使用 okhttp ,他自己就有 logging 这个功能,非要用 httpclient 的话,直接上 aop ,记录所有请求
cppc
2022-02-18 17:55:02 +08:00
BQsummer
2022-02-18 18:16:39 +08:00
用 okhttp ,写 Interceptor 打印 httpout 日志
sinnosong1
2022-02-19 17:39:45 +08:00
@warcraft1236 请问 aop 的话,要怎么实现?我现在是用 httpclient 的拦截器做的。aop 实现不知道要在哪里切入,能给点指导嘛?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/834762

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX