[kotlin] Ktor HTML 라이브러리 로깅

Ktor은 Kotlin으로 작성된 웹 어플리케이션을 구축하기 위한 프레임워크로, 요청을 처리하기 위해 여러 유연한 라이브러리를 제공합니다. 이 중 하나인 Ktor HTML 라이브러리를 사용할 때 로깅을 추가하는 방법에 대해 알아보겠습니다.

1. 로깅 라이브러리 추가

Kotlin에서 로깅을 위한 여러 라이브러리가 있지만, 여기에서는 간단한 예제로 kotlin-logging 라이브러리를 사용해보겠습니다.

먼저, build.gradle.kts 파일에 다음과 같이 kotlin-logging 라이브러리를 추가합니다:

dependencies {
    implementation("io.github.microutils:kotlin-logging:1.12.1")
}

2. 로깅 설정

이제 Ktor 애플리케이션 내에 로깅을 설정합니다.

import mu.KotlinLogging

private val logger = KotlinLogging.logger {}

fun main() {
    // ... Ktor 애플리케이션 설정

    install(CallLogging) {
        level = Level.INFO
        filter { call -> call.request.uri.startsWith("/") }
        format = formatToString {
              format("[%1tF %1tT] [%-4level] %message")
        }
    }

    // ... 라우팅 및 핸들러 설정
}

여기서 mu.KotlinLoggingkotlin-logging 라이브러리에서 로깅을 위해 사용됩니다. 또한 install(CallLogging)을 통해 Ktor 애플리케이션에 로깅을 추가하고 있습니다.

3. 로그 기록

이제 애플리케이션의 필요한 부분에 로깅 기능을 추가할 수 있습니다:

logger.info { "Information message" }
logger.debug { "Debug message" }
logger.error { "Error message" }

위 코드에서 logger 인스턴스를 사용하여 다양한 로그 레벨로 메시지를 기록할 수 있습니다.

이제 Ktor HTML 라이브러리에 로깅을 추가하는 방법에 대해 간단히 살펴봤습니다. 사용하는 로깅 라이브러리나 설정에 따라 조금씩 다를 수 있으니, 자신의 상황에 맞게 적절히 적용하면 됩니다.

참고 자료