두 손끝의 창조자

Spring Boot Actuator를 활용하여 로그 레벨 관리하기 본문

Spring

Spring Boot Actuator를 활용하여 로그 레벨 관리하기

codinglog 2023. 9. 20. 08:49

Spring Boot 애플리케이션에서 로그 레벨을 동적으로 설정하는 방법에 대해 살펴본다.

Spring Boot Actuator 소개

Spring Boot Actuator는 Spring Boot의 하위 프로젝트로서 애플리케이션의 관리와 모니터링에 필요한 다양한 기능을 제공한다. 이를 통해 애플리케이션의 상태, 메트릭스, 그리고 여기서 다룰 내용인 로깅과 같은 중요한 정보를 제공한다.

로그 레벨 확인하기

로그 레벨을 확인하려면 /actuator/loggers 엔드포인트로 GET 요청을 보내면 된다.

curl -X GET http://localhost:8080/actuator/loggers

응답 형태

{
  "levels": ["TRACE", "DEBUG", "INFO", "WARN", "ERROR", "FATAL", "OFF"],
  "loggers": {
    "com.example": "DEBUG",
    "org.springframework.web": "INFO"
  }
}

로그 레벨 설정하기

Spring Boot Actuator의 가장 유용한 기능 중 하나는 애플리케이션을 다시 배포하지 않고도 동적으로 로그 레벨을 변경할 수 있다는 점이다. 이 기능은 디버깅 목적으로 사용되거나 프로덕션 환경에서 세부적인 logging verbosity 조정에 매우 유용하다.

특정 logger의 log level 설정은 {loggerName}에 해당하는 이름으로 POST 요청하여 /actuator/loggers/{loggerName} 엔드포인트로 전송하면 된다. 원하는 log level 값을 JSON 페이로드에 포함시킨다.

다음은 com.example logger의 log level을 DEBUG로 변경하는 예시이다:

curl -X POST -H 'Content-Type: application/json' -d '{"configuredLevel":"DEBUG"}' http://localhost:8080/actuator/loggers/com.example

응답:

{
  "configuredLevel": "DEBUG",
  "effectiveLevel": "DEBUG"
}
반응형
Comments