실제 운영 시스템에서는 System.out.println()같은 메서드를 사용하지 않고 로깅 라이브러리를 이용해서 로그를 기록한다. 따라서 로깅에 대해서 알아보자
스프링 부트에서는 기본적으로 spring-boot-starter-logging라이브러리가 포함되는데, 이 라이브러리는 SLF4J라는 인터페이스로 제공되고, 구현체로는 대부분 Logback이 사용된다.
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@Slf4j
@RestController
public class LogTestController {
// 직접 선언
// private final Logger log = LoggerFactory.getLogger(getClass());
@GetMapping("/log-test")
public String logTest() {
String name = "Spring";
System.out.println("name = " + name);
log.trace("trace log={}", name);
log.debug("debug log={}", name);
log.info("info log={}", name);
log.warn("warn log={}", name);
log.error("error log={}", name);
return "ok";
}
}
#전체 로그 레벨 설정(기본info)
logging.level.root=info
#hello.springmvc 패키지와 그 하위 로그 레벨 설정
#logging.level.hello.springmvc=info
trace로 설정시 모든 로그를 확인할 수 있다.
debug로 설정시 debug 레벨 로그만 확인할 수 있다.
info로 설정시
String name = "Spring";
// 올바르지 못한 사용법
log.trace("trace log="+ name);
// 올바른 사용법
log.trace("trace log={}", name);