Open
Description
I was thinking about adding an extension for Ktor Client. It is almost the same integration as for the Koin library. Ktor also has its own logger, so it could be done very similarly. For more information see ktor docs.
Logger:
import io.ktor.client.plugins.logging.Logger as KtorLogger
import co.touchlab.kermit.Logger as KermitLogger
class KermitKtorLogger(private val logger: KermitLogger) : KtorLogger {
override fun log(message: String) {
logger.i(message)
}
}
Usage:
import co.touchlab.kermit.Logger
import io.ktor.client.HttpClient
import io.ktor.client.engine.java.Java
import io.ktor.client.plugins.logging.LogLevel
import io.ktor.client.plugins.logging.Logging
class KtorClient {
val httpClient = HttpClient(Java) {
install(Logging) {
logger = KermitKtorLogger(Logger.withTag("Ktor"))
level = LogLevel.INFO
}
}
}