66import java .util .List ;
77import java .util .Map ;
88import java .util .function .Function ;
9+
10+ import io .apimatic .core .logger .configurations .SdkLoggingConfiguration ;
911import io .apimatic .core .utilities .CoreHelper ;
1012import io .apimatic .coreinterfaces .authentication .Authentication ;
1113import io .apimatic .coreinterfaces .compatibility .CompatibilityFactory ;
1214import io .apimatic .coreinterfaces .http .Callback ;
1315import io .apimatic .coreinterfaces .http .HttpClient ;
1416import io .apimatic .coreinterfaces .http .HttpHeaders ;
17+ import io .apimatic .coreinterfaces .logger .configuration .LoggingConfiguration ;
1518
1619/**
1720 * A class which hold the global configuration properties to make a successful Api Call
@@ -62,6 +65,11 @@ public final class GlobalConfiguration {
6265 */
6366 private Function <String , String > baseUri ;
6467
68+ /***
69+ * An instance of {@link LoggingConfiguration}
70+ */
71+ private LoggingConfiguration loggingConfiguration ;
72+
6573 /**
6674 * A private constructor.
6775 * @param compatibilityFactory
@@ -73,12 +81,14 @@ public final class GlobalConfiguration {
7381 * @param globalHeaders
7482 * @param additionalHeaders
7583 * @param baseUri
84+ * @param loggingConfiguration
7685 */
7786 private GlobalConfiguration (final CompatibilityFactory compatibilityFactory ,
7887 final String userAgent , final Map <String , String > userAgentConfig ,
7988 final Map <String , Authentication > authentications , final Callback callback ,
8089 final HttpClient httpClient , final Map <String , List <String >> globalHeaders ,
81- final HttpHeaders additionalHeaders , final Function <String , String > baseUri ) {
90+ final HttpHeaders additionalHeaders , final Function <String , String > baseUri ,
91+ final LoggingConfiguration loggingConfiguration ) {
8292 this .compatibilityFactory = compatibilityFactory ;
8393 this .userAgent = userAgent ;
8494 this .userAgentConfig = userAgentConfig ;
@@ -88,6 +98,7 @@ private GlobalConfiguration(final CompatibilityFactory compatibilityFactory,
8898 this .globalHeaders = globalHeaders != null ? globalHeaders : new HashMap <>();
8999 this .additionalHeaders = additionalHeaders ;
90100 this .baseUri = baseUri ;
101+ this .loggingConfiguration = loggingConfiguration ;
91102
92103 if (this .userAgent != null ) {
93104 this .userAgent = CoreHelper .updateUserAgent (userAgent , userAgentConfig );
@@ -158,6 +169,13 @@ public Function<String, String> getBaseUri() {
158169 return baseUri ;
159170 }
160171
172+ /***
173+ * @return Logging configuration for Logger
174+ */
175+ public LoggingConfiguration getLoggingConfiguration () {
176+ return loggingConfiguration ;
177+ }
178+
161179 public static class Builder {
162180 /**
163181 * An instance of {@link CompatibilityFactory}.
@@ -204,6 +222,12 @@ public static class Builder {
204222 */
205223 private Function <String , String > baseUri ;
206224
225+ /***
226+ * An instance of {@link LoggingConfiguration}
227+ */
228+ private LoggingConfiguration loggingConfiguration =
229+ new SdkLoggingConfiguration .Builder ().build ();
230+
207231 /**
208232 * @param compatibilityFactory value for CompatibilityFactor.
209233 * @return Builder.
@@ -293,14 +317,23 @@ public Builder baseUri(Function<String, String> baseUri) {
293317 return this ;
294318 }
295319
320+ /**
321+ * @param config Logging configuration for Logger
322+ * @return Builder
323+ */
324+ public Builder loggingConfiguration (LoggingConfiguration config ) {
325+ this .loggingConfiguration = config ;
326+ return this ;
327+ }
328+
296329 /**
297330 * Builds a new {@link GlobalConfiguration} object using the set fields.
298331 * @return {@link GlobalConfiguration}.
299332 */
300333 public GlobalConfiguration build () {
301334 return new GlobalConfiguration (compatibilityFactory , userAgent , userAgentConfig ,
302335 authentications , callback , httpClient , globalHeaders , additionalheaders ,
303- baseUri );
336+ baseUri , loggingConfiguration );
304337 }
305338 }
306339
0 commit comments