[AB-282] adding okhttp interceptor to log requests

This commit is contained in:
Sheldan
2021-06-01 21:44:03 +02:00
parent 3bf761a2e5
commit 2f8e7c3947
3 changed files with 37 additions and 1 deletions

View File

@@ -4,6 +4,7 @@ import ch.qos.logback.core.net.ssl.SecureRandomFactoryBean;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
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.service.BotService;
import okhttp3.OkHttpClient;
@@ -32,6 +33,9 @@ public class CoreConfig {
@Autowired
private OkHttpMetrics okHttpMetrics;
@Autowired
private OkHttpLogger okHttpLogger;
@Bean
public Gson gson() {
return new GsonBuilder()
@@ -50,7 +54,10 @@ public class CoreConfig {
@Bean
public OkHttpClient client() {
return new OkHttpClient.Builder().addInterceptor(okHttpMetrics).build();
return new OkHttpClient.Builder()
.addInterceptor(okHttpMetrics)
.addInterceptor(okHttpLogger)
.build();
}
@Bean

View File

@@ -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;
}
}

View File

@@ -1,5 +1,6 @@
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.service.CounterMetric;
import dev.sheldan.abstracto.core.metric.service.MetricService;
@@ -33,6 +34,9 @@ public class BotServiceBean implements BotService {
@Autowired
private OkHttpMetrics okHttpMetrics;
@Autowired
private OkHttpLogger okHttpLogger;
@Autowired
private MetricService metricService;
@@ -56,6 +60,7 @@ public class BotServiceBean implements BotService {
builder.setMemberCachePolicy(MemberCachePolicy.ONLINE);
OkHttpClient.Builder defaultBuilder = IOUtil.newHttpClientBuilder();
defaultBuilder.addInterceptor(okHttpMetrics);
defaultBuilder.addInterceptor(okHttpLogger);
builder.setHttpClientBuilder(defaultBuilder);
this.instance = builder.build();