웹 서버를 운영하다 보면, 사용자 요청 및 응답에 대한 로깅 데이터를 저장해야 할 때가 있습니다. 이를 통해 서버 운영 상태를 모니터링하고 디버깅에 도움을 주는데요. 이번 블로그 포스트에서는 코틀린 웹 서버에서 로깅 데이터를 저장하는 방법에 대해 알아보겠습니다.
로깅 라이브러리 선택
코틀린에서는 다양한 로깅 라이브러리를 사용할 수 있습니다. 가장 인기 있는 로깅 라이브러리 중 하나인 “Logback”을 예시로 살펴보겠습니다. Logback은 성능과 유연성 면에서 우수한 선택지입니다.
Gradle 빌드 파일에 다음 dependency를 추가하여 Logback을 사용할 수 있습니다.
dependencies {
implementation 'ch.qos.logback:logback-classic:1.2.3'
}
로그 설정 파일 작성
Logback을 사용하기 위해선 로그 설정 파일을 작성해야 합니다. resources
폴더에 logback.xml
파일을 생성하고 다음과 같이 작성해보세요.
<configuration>
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%date [%level] %logger{36}.%M - %msg%n</pattern>
</encoder>
</appender>
<appender name="file" class="ch.qos.logback.core.FileAppender">
<file>logs/application.log</file>
<encoder>
<pattern>%date [%level] %logger{36}.%M - %msg%n</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="console" />
<appender-ref ref="file" />
</root>
</configuration>
위 설정 파일은 로그를 콘솔과 파일에 출력하도록 구성되어 있습니다. 파일명은 logs/application.log
로 지정되어 있습니다.
로깅 코드 작성
이제 로깅 코드를 작성해봅시다. 예를 들어, HTTP GET 요청이 발생할 때마다 “GET 요청이 발생했습니다”라는 로그를 남기고 싶다고 가정해봅시다.
import org.slf4j.LoggerFactory
val logger = LoggerFactory.getLogger("application")
fun handleGetRequest() {
logger.info("GET 요청이 발생했습니다")
}
get
요청이 발생하면 handleGetRequest
함수를 호출하여 해당 로그를 기록합니다.
결과 확인
서버를 실행하고 handleGetRequest
함수를 호출하면 로그가 콘솔에 출력되고 logs/application.log
파일에도 로그가 저장됩니다. 이제 서버 운영 상태를 모니터링하거나 디버깅할 때 로그를 살펴볼 수 있습니다.
마무리
이번 포스트에서는 코틀린 웹 서버에서 로깅 데이터를 저장하는 방법에 대해 알아보았습니다. Logback을 사용하여 로그를 설정하고 관리하는 방법을 살펴봤는데요. 로깅은 서버 운영에 필수적인 요소이므로 적절한 로깅 작업을 수행하여 서버를 효율적으로 관리하시기 바랍니다.