Spring

SpringBoot Dynamic Log

Flambee 2021. 6. 7. 20:27

오늘은 Actuator를 이용한 Dynamic Log에 대해서 알아보도록 하겠습니다.

 

Actuator를 이용하여 SpringBoot Log 레벨을 설정한다면, 매우 다이내믹하게 사용이 가능합니다.

 

curl -X "POST" "http://localhost:8080/actuator/loggers/ROOT"
-H "Content-Type: application/json; charset=utf-8"   
-d $'{ "configuredLevel": "DEBUG" }'

 

이러한 주소 하나를 호출하는 것만으로 실행 중인 어플리케이션으로 Log Level을 변경해줄 수 있습니다.

 

해당 설정을 하기 위해서는 build.gadle 또는 pom.xml에 actuator를 빌드하셔야 사용 가능합니다.

 

dependencies {

	implementation("org.springframework.boot:spring-boot-starter-actuator")

}

 

설정 다음에 application.yml에 간단한 actuator endpoint를 노출만 시켜주면 됩니다.

 

management:
  endpoints:
    web:
      exposure:
        include: loggers
    loggers:
      enabled: true

 

 

 

해당 메소드에 대해서 처음 level을 Info로 넣고 돌리면 아래와 같은 결과가 나오지만,

아래의 명령어를 입력하여 실행을 한 다음에 위의 callLogRainbow를 다시 실행을 하면,

curl -X "POST" "http://localhost:8080/actuator/loggers/ROOT"
-H "Content-Type: application/json; charset=utf-8"   
-d $'{ "configuredLevel": "DEBUG" }'

이렇게 DEBUG 로그까지 찍히게 됩니다.

 

이상이에요~

 

저는 오늘.. 요가 대신 밖에서 뛰고 오려구요! 뛰고 올게요!

 

해당 소스는 https://github.com/Flamme1004K/Spring-API-AOP-Logging 에서 볼 수 있습니다.