'System.out.println()' 으로 시스템 콘솔로 출력하여 확인하였지만 로깅 라이브러리 사용
로깅 라이브러리
스프링부트 라이브러리 사용시 스프링 부트 로깅 라이브러리 포함
다양한 로그 라이브러리가 있지만 SLF4J는 통합 인터페이스로 제공한다
SLF4J : 인터페이스 , 구현체: Logback 등
package hello.springmvc.basic;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @Controller의 반환값이 String 이면 뷰 이름으로 인식
* @RestController은 반환 값으로 뷰를 찾는것이 아니라 Http 메세지 바디에 바로 입력
*/
//@Slf4j
@RestController
public class LogTestController {
private final Logger log = LoggerFactory.getLogger(getClass());
@RequestMapping("/log-test")
public String LogTest() {
String name = "Spring";
//로그 사용시 지향
//System.out.println("name=" + name);
//log level = trace < debug < info < warn < error
//개발 서버 : debug / 운영 서버 : info
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";
}
}
📋 로그의 장점
- 쓰레드 정보, 클래스 이름 같은 부가 정보 및, 출력 모양을 조절 가능
- 개발에서는 모든 로그 출력하고, 운영에서는 출력하지 않는 등 로그를 상황에 맞게 조절 가능
- 시스템 아웃 콘솔에만 출력하는 것이 아니라, 파일이나 네트워크 등, 로그를 별도의 위치에 저장
- 성능도 일반 System.out보다 좋다.