是否有可能排除某些服务调用以进行 http 日志记录?
Posted
技术标签:
【中文标题】是否有可能排除某些服务调用以进行 http 日志记录?【英文标题】:Is there a possibility to exclude certain service calls for http logging? 【发布时间】:2019-12-20 18:52:37 【问题描述】:在https://github.com/square/okhttp/tree/master/okhttp-logging-interceptor 的上下文中,是否有可能排除某些服务调用? 在我的应用程序中有 2-3 个 HTTP 调用,我不希望日志拦截器记录它。
是否有可能覆盖 HttpLoggingInterceptor 类中的拦截方法?是否有可能编写一个注释处理器,从日志记录中排除/忽略某些服务调用?
【问题讨论】:
【参考方案1】:拦截器旨在与您的每个 http 调用挂钩,以便您可以观察到什么在上升,什么在下降。
但是为了减少拦截的 API 调用,您可以创建 2 个不同的改造客户端,一个带有 OkHttpClient,另一个没有任何客户端。
因此,您可以使用不想拦截的常规 Retrofit 客户端请求您的 Api,对于其他 API,请使用带有日志拦截的 OKHTTP 客户端。
【讨论】:
【参考方案2】:你可以使用两个 OkHttpClient 实例,一个有拦截器,一个没有拦截器:
OkHttpClient okHttpClientWithLogging = new OkHttpClient.Builder()
.addInterceptor(logging)
.build();
OkHttpClient okHttpClientWithoutLogging = new OkHttpClient.Builder()
.build();
【讨论】:
以上是关于是否有可能排除某些服务调用以进行 http 日志记录?的主要内容,如果未能解决你的问题,请参考以下文章
我们是不是需要取消订阅 Angular 中的 http 调用? [复制]
触发从“Keycloak”到“Azure ADB2C”的基本 http 调用以进行令牌响应时出错
进行 javaScript 调用以使用在 localhost 上运行的 REST API