From 2f8e7c3947259337ca68ad37a29d66a5d9611e26 Mon Sep 17 00:00:00 2001 From: Sheldan <5037282+Sheldan@users.noreply.github.com> Date: Tue, 1 Jun 2021 21:44:03 +0200 Subject: [PATCH] [AB-282] adding okhttp interceptor to log requests --- .../abstracto/core/config/CoreConfig.java | 9 ++++++- .../abstracto/core/logging/OkHttpLogger.java | 24 +++++++++++++++++++ .../core/service/BotServiceBean.java | 5 ++++ 3 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/logging/OkHttpLogger.java diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/config/CoreConfig.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/config/CoreConfig.java index 87bfa2a31..f8f4b7e89 100644 --- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/config/CoreConfig.java +++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/config/CoreConfig.java @@ -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 diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/logging/OkHttpLogger.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/logging/OkHttpLogger.java new file mode 100644 index 000000000..e98f977a3 --- /dev/null +++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/logging/OkHttpLogger.java @@ -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; + } +} diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/BotServiceBean.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/BotServiceBean.java index bd148d913..4af51549e 100644 --- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/BotServiceBean.java +++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/BotServiceBean.java @@ -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();