mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-04-04 16:45:44 +00:00
[AB-282] adding okhttp interceptor to log requests
This commit is contained in:
@@ -4,6 +4,7 @@ import ch.qos.logback.core.net.ssl.SecureRandomFactoryBean;
|
|||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import com.google.gson.GsonBuilder;
|
import com.google.gson.GsonBuilder;
|
||||||
import com.jagrosh.jdautilities.commons.waiter.EventWaiter;
|
import com.jagrosh.jdautilities.commons.waiter.EventWaiter;
|
||||||
|
import dev.sheldan.abstracto.core.logging.OkHttpLogger;
|
||||||
import dev.sheldan.abstracto.core.metric.OkHttpMetrics;
|
import dev.sheldan.abstracto.core.metric.OkHttpMetrics;
|
||||||
import dev.sheldan.abstracto.core.service.BotService;
|
import dev.sheldan.abstracto.core.service.BotService;
|
||||||
import okhttp3.OkHttpClient;
|
import okhttp3.OkHttpClient;
|
||||||
@@ -32,6 +33,9 @@ public class CoreConfig {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private OkHttpMetrics okHttpMetrics;
|
private OkHttpMetrics okHttpMetrics;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private OkHttpLogger okHttpLogger;
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public Gson gson() {
|
public Gson gson() {
|
||||||
return new GsonBuilder()
|
return new GsonBuilder()
|
||||||
@@ -50,7 +54,10 @@ public class CoreConfig {
|
|||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public OkHttpClient client() {
|
public OkHttpClient client() {
|
||||||
return new OkHttpClient.Builder().addInterceptor(okHttpMetrics).build();
|
return new OkHttpClient.Builder()
|
||||||
|
.addInterceptor(okHttpMetrics)
|
||||||
|
.addInterceptor(okHttpLogger)
|
||||||
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
|
|||||||
@@ -0,0 +1,24 @@
|
|||||||
|
package dev.sheldan.abstracto.core.logging;
|
||||||
|
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import okhttp3.Interceptor;
|
||||||
|
import okhttp3.Request;
|
||||||
|
import okhttp3.Response;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
@Component
|
||||||
|
public class OkHttpLogger implements Interceptor {
|
||||||
|
@Override
|
||||||
|
public Response intercept(Chain chain) throws IOException {
|
||||||
|
Request request = chain.request();
|
||||||
|
log.debug("Executing request towards towards {}.", request.url().toString());
|
||||||
|
Response response = chain.proceed(request);
|
||||||
|
long startTime = response.sentRequestAtMillis();
|
||||||
|
long endTime = response.receivedResponseAtMillis();
|
||||||
|
log.debug("Response from {} with status {} received in {}ms.", request.url().toString(), response.code(), (endTime - startTime));
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
package dev.sheldan.abstracto.core.service;
|
package dev.sheldan.abstracto.core.service;
|
||||||
|
|
||||||
|
import dev.sheldan.abstracto.core.logging.OkHttpLogger;
|
||||||
import dev.sheldan.abstracto.core.metric.OkHttpMetrics;
|
import dev.sheldan.abstracto.core.metric.OkHttpMetrics;
|
||||||
import dev.sheldan.abstracto.core.metric.service.CounterMetric;
|
import dev.sheldan.abstracto.core.metric.service.CounterMetric;
|
||||||
import dev.sheldan.abstracto.core.metric.service.MetricService;
|
import dev.sheldan.abstracto.core.metric.service.MetricService;
|
||||||
@@ -33,6 +34,9 @@ public class BotServiceBean implements BotService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private OkHttpMetrics okHttpMetrics;
|
private OkHttpMetrics okHttpMetrics;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private OkHttpLogger okHttpLogger;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private MetricService metricService;
|
private MetricService metricService;
|
||||||
|
|
||||||
@@ -56,6 +60,7 @@ public class BotServiceBean implements BotService {
|
|||||||
builder.setMemberCachePolicy(MemberCachePolicy.ONLINE);
|
builder.setMemberCachePolicy(MemberCachePolicy.ONLINE);
|
||||||
OkHttpClient.Builder defaultBuilder = IOUtil.newHttpClientBuilder();
|
OkHttpClient.Builder defaultBuilder = IOUtil.newHttpClientBuilder();
|
||||||
defaultBuilder.addInterceptor(okHttpMetrics);
|
defaultBuilder.addInterceptor(okHttpMetrics);
|
||||||
|
defaultBuilder.addInterceptor(okHttpLogger);
|
||||||
builder.setHttpClientBuilder(defaultBuilder);
|
builder.setHttpClientBuilder(defaultBuilder);
|
||||||
|
|
||||||
this.instance = builder.build();
|
this.instance = builder.build();
|
||||||
|
|||||||
Reference in New Issue
Block a user