mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-03-23 05:26:06 +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.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
|
||||
|
||||
@@ -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;
|
||||
|
||||
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();
|
||||
|
||||
Reference in New Issue
Block a user