Add ktor logging

pull/3212/head
Alex Baker 11 months ago
parent df153da8cf
commit d1305f67bb

@ -245,6 +245,7 @@ dependencies {
implementation(libs.coil.gif) implementation(libs.coil.gif)
implementation(libs.ktor) implementation(libs.ktor)
implementation(libs.ktor.client.logging)
implementation(libs.ktor.content.negotiation) implementation(libs.ktor.content.negotiation)
implementation(libs.ktor.serialization) implementation(libs.ktor.serialization)

@ -10,7 +10,11 @@ import io.ktor.client.plugins.HttpTimeout
import io.ktor.client.plugins.contentnegotiation.ContentNegotiation import io.ktor.client.plugins.contentnegotiation.ContentNegotiation
import io.ktor.client.plugins.cookies.HttpCookies import io.ktor.client.plugins.cookies.HttpCookies
import io.ktor.client.plugins.defaultRequest import io.ktor.client.plugins.defaultRequest
import io.ktor.client.plugins.logging.LogLevel
import io.ktor.client.plugins.logging.Logger
import io.ktor.client.plugins.logging.Logging
import io.ktor.client.request.header import io.ktor.client.request.header
import io.ktor.http.HttpHeaders
import io.ktor.serialization.kotlinx.json.json import io.ktor.serialization.kotlinx.json.json
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext import kotlinx.coroutines.withContext
@ -18,6 +22,7 @@ import kotlinx.serialization.json.Json
import net.openid.appauth.AuthState import net.openid.appauth.AuthState
import okhttp3.OkHttpClient import okhttp3.OkHttpClient
import okhttp3.internal.tls.OkHostnameVerifier import okhttp3.internal.tls.OkHostnameVerifier
import org.tasks.BuildConfig
import org.tasks.DebugNetworkInterceptor import org.tasks.DebugNetworkInterceptor
import org.tasks.caldav.TasksCookieJar import org.tasks.caldav.TasksCookieJar
import org.tasks.data.entity.CaldavAccount import org.tasks.data.entity.CaldavAccount
@ -26,6 +31,7 @@ import org.tasks.preferences.Preferences
import org.tasks.security.KeyStoreEncryption import org.tasks.security.KeyStoreEncryption
import org.tasks.sync.microsoft.MicrosoftService import org.tasks.sync.microsoft.MicrosoftService
import org.tasks.sync.microsoft.requestTokenRefresh import org.tasks.sync.microsoft.requestTokenRefresh
import timber.log.Timber
import javax.inject.Inject import javax.inject.Inject
import javax.net.ssl.SSLContext import javax.net.ssl.SSLContext
@ -122,6 +128,16 @@ class HttpClientFactory @Inject constructor(
} }
install(HttpErrorHandler) install(HttpErrorHandler)
install(Logging) {
logger = object : Logger {
override fun log(message: String) {
Timber.d(message)
}
}
level = if (BuildConfig.DEBUG) LogLevel.ALL else LogLevel.HEADERS
sanitizeHeader { header -> header == HttpHeaders.Authorization }
}
} }
return MicrosoftService( return MicrosoftService(
client = client client = client

@ -1444,6 +1444,13 @@
+| | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.1.0 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.1.0 (*)
+| +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.9.0 (*) +| +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.9.0 (*)
+| \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.21 -> 2.1.0 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.21 -> 2.1.0 (*)
++--- io.ktor:ktor-client-logging:3.0.3
+| \--- io.ktor:ktor-client-logging-jvm:3.0.3
+| +--- org.slf4j:slf4j-api:2.0.16
+| +--- org.jetbrains.kotlinx:kotlinx-coroutines-slf4j:1.9.0 (*)
+| +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.9.0 (*)
+| +--- io.ktor:ktor-client-core:3.0.3 (*)
+| \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.21 -> 2.1.0 (*)
++--- io.ktor:ktor-client-content-negotiation:3.0.3 ++--- io.ktor:ktor-client-content-negotiation:3.0.3
+| \--- io.ktor:ktor-client-content-negotiation-jvm:3.0.3 +| \--- io.ktor:ktor-client-content-negotiation-jvm:3.0.3
+| +--- org.slf4j:slf4j-api:2.0.16 +| +--- org.slf4j:slf4j-api:2.0.16

@ -1752,6 +1752,13 @@
+| | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.1.0 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.1.0 (*)
+| +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.9.0 (*) +| +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.9.0 (*)
+| \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.21 -> 2.1.0 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.21 -> 2.1.0 (*)
++--- io.ktor:ktor-client-logging:3.0.3
+| \--- io.ktor:ktor-client-logging-jvm:3.0.3
+| +--- org.slf4j:slf4j-api:2.0.16
+| +--- org.jetbrains.kotlinx:kotlinx-coroutines-slf4j:1.9.0 (*)
+| +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.9.0 (*)
+| +--- io.ktor:ktor-client-core:3.0.3 (*)
+| \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.21 -> 2.1.0 (*)
++--- io.ktor:ktor-client-content-negotiation:3.0.3 ++--- io.ktor:ktor-client-content-negotiation:3.0.3
+| \--- io.ktor:ktor-client-content-negotiation-jvm:3.0.3 +| \--- io.ktor:ktor-client-content-negotiation-jvm:3.0.3
+| +--- org.slf4j:slf4j-api:2.0.16 +| +--- org.slf4j:slf4j-api:2.0.16

@ -148,6 +148,7 @@ kotlinx-datetime = { module = "org.jetbrains.kotlinx:kotlinx-datetime", version
kotlinx-immutable = { module = "org.jetbrains.kotlinx:kotlinx-collections-immutable", version = "0.3.8" } kotlinx-immutable = { module = "org.jetbrains.kotlinx:kotlinx-collections-immutable", version = "0.3.8" }
kotlinx-serialization = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version = "1.7.3" } kotlinx-serialization = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version = "1.7.3" }
ktor = { module = "io.ktor:ktor-client-android", version.ref = "ktor" } ktor = { module = "io.ktor:ktor-client-android", version.ref = "ktor" }
ktor-client-logging = { module = "io.ktor:ktor-client-logging", version.ref = "ktor" }
ktor-content-negotiation = { module = "io.ktor:ktor-client-content-negotiation", version.ref = "ktor" } ktor-content-negotiation = { module = "io.ktor:ktor-client-content-negotiation", version.ref = "ktor" }
ktor-serialization = { module = "io.ktor:ktor-serialization-kotlinx-json", version.ref = "ktor" } ktor-serialization = { module = "io.ktor:ktor-serialization-kotlinx-json", version.ref = "ktor" }
leakcanary = { module = "com.squareup.leakcanary:leakcanary-android", version.ref = "leakcanary" } leakcanary = { module = "com.squareup.leakcanary:leakcanary-android", version.ref = "leakcanary" }

Loading…
Cancel
Save