Open
Description
Checklist
- I have looked into the Readme, Examples, and FAQ and have not found a suitable solution or answer.
- I have looked into the API documentation and have not found a suitable solution or answer.
- I have searched the issues and have not found a suitable solution or answer.
- I have searched the Auth0 Community forums and have not found a suitable solution or answer.
- I agree to the terms within the Auth0 Code of Conduct.
Describe the problem you'd like to have solved
Hello,
I'm looking at the DefaultClient
implementation, and there isn't a way to override logs emitted by Auth0 requests.
In the current implementation, the HttpLoggingInterceptor
has been built inside the init of DefaultClient
and cannot be overridden. And I don't want to implement something similar to this just to override the log output.
We need it in the company to logs out a few breadcrumbs to our secure log vault.
Describe the ideal solution
I'd suggest to include two different ways:
1:
package com.auth0.android.request
// code..
public class DefaultClient @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) internal constructor(
connectTimeout: Int,
readTimeout: Int,
private val defaultHeaders: Map<String, String>,
enableLogging: Boolean,
private val gson: Gson,
sslSocketFactory: SSLSocketFactory?,
trustManager: X509TrustManager?,
logger: HttpLoggingInterceptor = Interceptor = HttpLoggingInterceptor()
.setLevel(HttpLoggingInterceptor.Level.BODY)
) : NetworkingClient {
// code
init {
// code
if (enableLogging) {
// remove it
// val logger: Interceptor = HttpLoggingInterceptor()
// .setLevel(HttpLoggingInterceptor.Level.BODY)
builder.addInterceptor(logger)
}
// code
}
}
or
2:
package com.auth0.android.request
// code..
public class DefaultClient @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) internal constructor(
connectTimeout: Int,
readTimeout: Int,
private val defaultHeaders: Map<String, String>,
enableLogging: Boolean,
private val gson: Gson,
sslSocketFactory: SSLSocketFactory?,
trustManager: X509TrustManager?,
defaultLogger: Logger = Logger.DEFAULT
) : NetworkingClient {
// code
init {
// code
if (enableLogging) {
val logger: Interceptor = HttpLoggingInterceptor(defaultLogger)
.setLevel(HttpLoggingInterceptor.Level.BODY)
builder.addInterceptor(logger)
}
// code
}
}
Alternatives and current workarounds
That is possible to create a custom NetworkingClient object and that include the HttpLoggingInteceptor by my own, but for a simple log, I guess DefaultClient could provide it
Additional context
We are going to use it in our Dev Env