Kotlin Ktor에 Logger 연결하기
03 Jan 2020 | Kotlin ktorKtor에 Logger 연결하기
Ktor에 Logger를 연결하지 않으면, 실행할 때 마다 다음 경고 메시지를 볼 수 있습니다.
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
경고 메시지라 실행하는데 큰 문제는 없지만, 걸리적거리기도 하고 원할한 디버깅을 위해 Logger를 설정하는 것을 추천합니다.
기본적으로 제공하는 Logback provider
를 사용해보도록 하겠습니다.
build.gradle
먼저 build.gradle
에 다음 항목을 추가합니다.
implementation "ch.qos.logback:logback-classic:1.2.3"
logback.xml
<configuration> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{YYYY-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <root level="trace"> <appender-ref ref="STDOUT"/> </root> <logger name="org.eclipse.jetty" level="INFO"/> <logger name="io.netty" level="INFO"/> </configuration>
그 이후 프로그램을 종료했다가 재실행을 하면 다음과 같은 메시지가 출력될 것입니다.
2020-01-06 18:47:51.160 [main] TRACE Application - {
# application.conf @ file:/Users/snowdeer/Workspace/HelloKtor/build/resources/main/application.conf: 6
"application" : {
# application.conf @ file:/Users/snowdeer/Workspace/HelloKtor/build/resources/main/application.conf: 7
"modules" : [
# application.conf @ file:/Users/snowdeer/Workspace/HelloKtor/build/resources/main/application.conf: 7
"com.snowdeer.BlogAppKt.main"
]
},
# application.conf @ file:/Users/snowdeer/Workspace/HelloKtor/build/resources/main/application.conf: 2
"deployment" : {
# application.conf @ file:/Users/snowdeer/Workspace/HelloKtor/build/resources/main/application.conf: 3
"port" : 8080
},
# Content hidden
"security" : "***"
}
2020-01-06 18:47:51.279 [main] INFO Application - No ktor.deployment.watch patterns specified, automatic reload is not active
2020-01-06 18:47:51.598 [main] INFO Application - Responding at http://0.0.0.0:8080
이 상태에서 GET
, POST
등의 메소드를 이용해서 서버에 접속해보면 다양한 로그 메시지들이 출력되는 것을 확인할 수 있습니다.