System.out.println()를 쓰는 경우 어떤 단계든지 다 남김. -> 다수의 사람이 들어와서 처리를 할 경우 엄청나게 많은 로그가 남게됨.
@RestController
public class LogTestController {
private final Logger log = LoggerFactory.getLogger(getClass());
@RequestMapping("/log-test")
public String logTest() {
String name = "spring";
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";
}
}
Logger부분은 @Slf4j 어노테이션을 통해서 Lombok이 자동으로 넣어주는게 가능
Slf4j 어노테이션을 따라들아가게되면 예시가 있는데 거기에서 자동으로 생성된다는 것을 알려준다.
Example:
@Slf4j
public class LogExample {
}
will generate:
public class LogExample {
private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LogExample.class);
}
@Slf4j
@RestController
public class LogTestController {
@RequestMapping("/log-test")
public String logTest() {
String name = "spring";
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";
}
}
# root -> 전체 로그 레벨 설정
# hello.springmvc => hello 패키지와 그 하위 로그 레벨 설정
logging:
level:
root: info
hello.springmvc : debug
log.info("info log ="+ name);
log.info("info log={}", name);