Spring/Springboot

[Springboot] 액츄에이터 - loggers 엔드포인트

늘이 2023. 12. 30. 18:32

 

1. 기능

로깅과 관련된 정보를 확인하고, 실시간 변경 가능

 

 

2. 실습

 

package hello.controller;

import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@Slf4j
@RestController
public class LogController {

    @GetMapping("/log")
    public String log() {
        log.trace("trace log");
        log.debug("debug log");
        log.info("info log");
        log.warn("warn log");
        log.error("error log");
        return "OK";
    }
}

 

 

hello패키지.controller패키지 아래의 파일들을 모두 로그 레벨을 debug로 설정

// application.yml

logging:
  level:
    hello.controller: debug

 

실행해보면 아래와 같이 debug 레벨 이상 로그 모두 확인할 수 있음

 

actuator/loggers를 확인해보면 위에서 설정한 hello.controller를 debug 레벨로 설정한 것을 확인할 수 있음

 

 

 

아래와 같은 패턴을 사용해서 특정 로거 이름을 기준으로 조회할 수 있음

http://localhost:8080/actuator/loggers/hello.controller

 

 

실시간 로그 레벨 변경

개발 서버는 보통 DEBUG 로그를 사용

운영 서버에서는 INFO 로그 레벨을 많이 사용함(디버그 레벨 로그까지 출력하게 되면 성능이나 디스크에 영향을 주게되서 중요하다고 판단되는 INFO 로그 레벨 사용)

서비스 운영중에 문제가 있어서 급하게 'DEBUG'나 'TRACE' 로그를 남겨서 확인해야 하는 상황이라면 일반적으로는 로깅 설정을 변경하고 서버를 다시 시작해야하지만 loggers엔드포인트를 이용하면 애플리케이션을 다시 시작하지 않고 실시간으로 로그 레벨을 변경할 수 있음

 

POST 요청이 필요하기 때문에 포스트맨 사용

 

 

 

TRACE 레벨 로그까지 찍히는 것을 확인할 수 있음