spring boot log level 변경(actuator)
로그레벨 동적 반영을 위하여
Controller를 하나 만들어서 처리할까 하다 이미 구현된 기능이 있을지 해서 검색해보니
이기 해당 기능이 actuator를 이용하여 처리가 가능하도록 되어있었습니다.
먼저 actuator를 사용하기 위해 pom.xml 에 추가합니다.(메이븐 기준으로)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
설정 없이는 /actuator 로 확인할수 있는것들이 없지만 'management.endpoints.web.exposure.include' 에 항목들을 추가하여 추가적인 기능들을 사용할 수 있습니다.
management.endpoints.web.exposure.include=loggers #management.endpoints.web.exposure.include=httptrace,loggers,health,info,metrics |
logger 설정 및 확인을 위해 필요한 내용은 loggers입니다.
위와같이 설정 후 기동하게되면
'/actuator/loggers' 를 통해 모든 로거들의 로그레벨들을 확인할 수 있습니다.
'/actuator/loggers/로거명' 을 GET으로 요청하면 해당 로거만 나타나게 됩니다.
이제 목표인 로그레벨 동적 변경을 위해서는
'/actuator/loggers/로거명' 에 POST로 설정할 값을 보내주면 됩니다.
{"configuredLevel":null,"effectiveLevel":"INFO"} 를
{"configuredLevel":"ERROR","effectiveLevel":"ERROR"} 로 변경하고자 하면
헤더는 컨텐츠 타입을 application/json에 body에 {"configuredLevel":"ERROR","effectiveLevel":"ERROR"} 을 넣어 요청하도록 하면 됩니다.
'JAVA > Spring' 카테고리의 다른 글
[MSA] sidecar 패턴 (0) | 2020.01.13 |
---|---|
[SpringConfig] Properties 암호화 (0) | 2019.12.24 |
reactor Schedulers (0) | 2019.12.16 |
스프링 부트 2.2 릴리즈노트 (0) | 2019.11.01 |
[Spring] zuul 사용시 Eureka client로 분배가 안되는경우 (0) | 2019.08.16 |