From 3012da2180ac168e75b16b8062d93390e93a8bd3 Mon Sep 17 00:00:00 2001 From: ngoxuantrinh Date: Thu, 24 Oct 2024 21:36:19 +0700 Subject: [PATCH 1/2] Allow user pick their own logger with custom config instead --- .../bot/client/base/ApiClientBuilder.java | 18 ++++++++++++++++-- .../bot/client/base/http/HttpInterceptor.java | 12 ++++++++++++ 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/clients/line-bot-client-base/src/main/java/com/linecorp/bot/client/base/ApiClientBuilder.java b/clients/line-bot-client-base/src/main/java/com/linecorp/bot/client/base/ApiClientBuilder.java index b7cec19ed..2a894fead 100644 --- a/clients/line-bot-client-base/src/main/java/com/linecorp/bot/client/base/ApiClientBuilder.java +++ b/clients/line-bot-client-base/src/main/java/com/linecorp/bot/client/base/ApiClientBuilder.java @@ -97,6 +97,8 @@ public ApiClientBuilder(URI apiEndPoint, Class clientClass, ExceptionBuilder private Integer maxRequestsPerHost = 5; + private boolean usingDefaultLogger = true; // Just kept the same behavior as the original code + /** * API Endpoint. */ @@ -158,7 +160,16 @@ public ApiClientBuilder maxRequestsPerHost(Integer maxRequestsPerHost) { return this; } - private static Interceptor buildLoggingInterceptor() { + /** + * Use default logger (see {@link #buildLoggingInterceptor()}) , default is true + * @param usingDefaultLogger + */ + public ApiClientBuilder usingDefaultLogger(boolean usingDefaultLogger) { + this.usingDefaultLogger = usingDefaultLogger; + return this; + } + + public static Interceptor buildLoggingInterceptor() { final Logger slf4jLogger = LoggerFactory.getLogger("com.linecorp.bot.client.wire"); return new HttpLoggingInterceptor(slf4jLogger::info) @@ -191,7 +202,10 @@ Dispatcher createDispatcher() { public T build() { OkHttpClient.Builder okHttpClientBuilder = createBuilder(); additionalInterceptors.forEach(okHttpClientBuilder::addInterceptor); - okHttpClientBuilder.addInterceptor(buildLoggingInterceptor()); + // Either adding explicitly HttpInterceptor#loggingInterceptor() or write your own + if (usingDefaultLogger) { + okHttpClientBuilder.addInterceptor(buildLoggingInterceptor()); + } // Set timeout. okHttpClientBuilder diff --git a/clients/line-bot-client-base/src/main/java/com/linecorp/bot/client/base/http/HttpInterceptor.java b/clients/line-bot-client-base/src/main/java/com/linecorp/bot/client/base/http/HttpInterceptor.java index d8731b7b2..aba0f35e8 100644 --- a/clients/line-bot-client-base/src/main/java/com/linecorp/bot/client/base/http/HttpInterceptor.java +++ b/clients/line-bot-client-base/src/main/java/com/linecorp/bot/client/base/http/HttpInterceptor.java @@ -18,6 +18,18 @@ import java.io.IOException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import okhttp3.Interceptor; +import okhttp3.logging.HttpLoggingInterceptor; + public interface HttpInterceptor { HttpResponse intercept(HttpChain httpChain) throws IOException; + + static Interceptor loggingInterceptor() { + final Logger slf4jLogger = LoggerFactory.getLogger("com.linecorp.bot.client.wire"); + return new HttpLoggingInterceptor(slf4jLogger::info) + .setLevel(HttpLoggingInterceptor.Level.BODY); + } } From 555ecd9795584e461930ea71147c9ee89477a38e Mon Sep 17 00:00:00 2001 From: ngoxuantrinh Date: Wed, 20 Nov 2024 14:41:45 +0700 Subject: [PATCH 2/2] Update after review --- .../linecorp/bot/client/base/ApiClientBuilder.java | 2 +- .../bot/client/base/http/HttpInterceptor.java | 12 ------------ 2 files changed, 1 insertion(+), 13 deletions(-) diff --git a/clients/line-bot-client-base/src/main/java/com/linecorp/bot/client/base/ApiClientBuilder.java b/clients/line-bot-client-base/src/main/java/com/linecorp/bot/client/base/ApiClientBuilder.java index 2a894fead..c28ed72ac 100644 --- a/clients/line-bot-client-base/src/main/java/com/linecorp/bot/client/base/ApiClientBuilder.java +++ b/clients/line-bot-client-base/src/main/java/com/linecorp/bot/client/base/ApiClientBuilder.java @@ -97,7 +97,7 @@ public ApiClientBuilder(URI apiEndPoint, Class clientClass, ExceptionBuilder private Integer maxRequestsPerHost = 5; - private boolean usingDefaultLogger = true; // Just kept the same behavior as the original code + private boolean usingDefaultLogger = true; /** * API Endpoint. diff --git a/clients/line-bot-client-base/src/main/java/com/linecorp/bot/client/base/http/HttpInterceptor.java b/clients/line-bot-client-base/src/main/java/com/linecorp/bot/client/base/http/HttpInterceptor.java index aba0f35e8..d8731b7b2 100644 --- a/clients/line-bot-client-base/src/main/java/com/linecorp/bot/client/base/http/HttpInterceptor.java +++ b/clients/line-bot-client-base/src/main/java/com/linecorp/bot/client/base/http/HttpInterceptor.java @@ -18,18 +18,6 @@ import java.io.IOException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import okhttp3.Interceptor; -import okhttp3.logging.HttpLoggingInterceptor; - public interface HttpInterceptor { HttpResponse intercept(HttpChain httpChain) throws IOException; - - static Interceptor loggingInterceptor() { - final Logger slf4jLogger = LoggerFactory.getLogger("com.linecorp.bot.client.wire"); - return new HttpLoggingInterceptor(slf4jLogger::info) - .setLevel(HttpLoggingInterceptor.Level.BODY); - } }