[kotlin] Ktor Core의 로깅 및 모니터링
Ktor는 인기 있는 Kotlin 기반 웹 프레임워크로, 로깅과 모니터링을 위한 강력한 도구를 제공합니다. 이 글에서는 Ktor Core에서 로깅과 모니터링을 어떻게 설정하고 사용하는지에 대해 알아보겠습니다.
로깅 설정
Ktor는 기본적으로 SLF4J(Logback)를 사용하여 로그를 기록합니다. 따라서 먼저 build.gradle 파일에 필요한 의존성을 추가해야 합니다.
dependencies {
implementation "io.ktor:ktor-server-core:$ktor_version"
implementation "ch.qos.logback:logback-classic:$logback_version"
}
그런 다음, 로깅을 구성하고 적절한 로깅 수준을 설정하기 위해 logback.xml 파일을 프로젝트에 추가합니다.
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="STDOUT"/>
</root>
</configuration>
이제 Ktor 애플리케이션에서 로깅이 설정되었고, 서버가 시작되고 작업이 수행될 때 로그를 기록할 준비가 되었습니다.
모니터링
Ktor는 내장된 monitor
기능을 통해 간단한 모니터링을 제공합니다. 다음은 모니터링을 실행하는 간단한 예제입니다.
fun main(args: Array<String>): Unit = io.ktor.server.netty.EngineMain.main(args)
@kotlin.jvm.JvmOverloads
fun Application.module(testing: Boolean = false) {
install(MicrometerMetrics) {
registry = prometheusMeterRegistry
}
routing {
get("/health") {
call.respondText("OK", ContentType.Text.Html)
}
}
}
위 예제는 MicrometerMetrics
와 Prometheus
를 사용하여 애플리케이션의 간단한 모니터링을 활성화합니다. /health
엔드포인트를 통해 애플리케이션의 상태를 모니터링할 수 있습니다.
결론
Ktor Core를 사용하여 강력한 로깅 및 모니터링 기능을 손쉽게 구현할 수 있습니다. 로그 레벨을 조정하거나 원하는 형식으로 로그를 포맷하는 등 다양한 방법으로 로깅을 활용할 수 있습니다. 또한 내장된 모니터링 기능을 통해 애플리케이션의 상태를 실시간으로 관찰하고 모니터링할 수 있습니다.
Ktor 공식 문서 및 GitHub 레포지토리에서 자세한 정보를 확인할 수 있습니다.