Kotlin multiplatform HTTP client logging plugin for LinuxX64 target that provides comprehensive request and response logging capabilities.
npx @tessl/cli install tessl/maven-io-ktor--ktor-client-logging-linuxx64@3.2.0Ktor Client Logging is a multiplatform HTTP client plugin that provides comprehensive request and response logging capabilities for LinuxX64 and other targets. It offers configurable detail levels, multiple output formats, header sanitization, and platform-specific logger integrations.
io.ktor:ktor-client-logging-linuxx64:3.2.0import io.ktor.client.plugins.logging.*For HttpClient installation:
import io.ktor.client.*
import io.ktor.client.plugins.logging.*import io.ktor.client.*
import io.ktor.client.plugins.logging.*
// Install logging plugin with basic configuration
val client = HttpClient {
install(Logging) {
level = LogLevel.HEADERS
logger = Logger.DEFAULT
}
}
// Or with custom configuration
val client = HttpClient {
install(Logging) {
level = LogLevel.ALL
format = LoggingFormat.OkHttp
logger = Logger.SIMPLE
// Filter requests
filter { request ->
request.url.host.contains("api.example.com")
}
// Sanitize sensitive headers
sanitizeHeader { headerName ->
headerName == "Authorization"
}
}
}The Ktor Client Logging plugin is built around several key components:
LoggingConfig class provides DSL-based configuration optionsLogLevel enum controls what information gets logged (INFO, HEADERS, BODY, ALL, NONE)LoggingFormat enum supports Default and OkHttp-style formattingCore plugin installation with comprehensive configuration options including levels, formats, filtering, and header sanitization.
val Logging: ClientPlugin<LoggingConfig>
fun HttpClientConfig<*>.Logging(block: LoggingConfig.() -> Unit = {})Control what information gets logged with granular level settings and request filtering capabilities.
enum class LogLevel(val info: Boolean, val headers: Boolean, val body: Boolean) {
ALL(true, true, true),
HEADERS(true, true, false),
BODY(true, false, true),
INFO(true, false, false),
NONE(false, false, false)
}Platform-specific logger implementations providing integration with system logging frameworks.
interface Logger {
fun log(message: String)
companion object
}
val Logger.Companion.DEFAULT: Logger
val Logger.Companion.SIMPLE: Logger
val Logger.Companion.EMPTY: LoggerMultiple output format options for compatibility with different logging tools and preferences.
enum class LoggingFormat {
Default,
OkHttp
}