WEB/spring
[Spring] 스프링 부트 로깅, slf4j, logback
JJunDol2
2021. 5. 30. 18:36
- 스프링 부트 라이브러리에는 spring-boot-starter-logging라이브러리가 포함되어 있음
- slf4j, logback을 사용함
- slf4j는 로깅과 관련된 기능을 제공하는 인터페이스이고, logback은 slf4j를 구현
package hello.springmvc.basic;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
//@Slf4j
@RestController
public class LogTestController {
private final Logger log = LoggerFactory.getLogger(getClass());
@RequestMapping("/log-test")
public String logTest(){
String name = "SpringLogTest";
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";
}
}
2021-05-30 18:32:24.965 INFO 15364 --- [nio-8080-exec-1] hello.springmvc.basic.LogTestController : info log=SpringLogTest
2021-05-30 18:32:24.969 WARN 15364 --- [nio-8080-exec-1] hello.springmvc.basic.LogTestController : warn log=SpringLogTest
2021-05-30 18:32:24.969 ERROR 15364 --- [nio-8080-exec-1] hello.springmvc.basic.LogTestController : error log=SpringLogTest
- 로그 LEVEL : TRACE > DEBUG > INFO(기본) > WARN > ERROR
application.properties
#logging.level.root=info
# hello.springlog하위 패키지에 info 레벨 설정
logging.level.hello.springlog=info
- 로그레벨을 설정하여 원하는 대로 조정할 수 있음 (개발서버에는 DEBUG로 설정, 운영서버에는 INFO로 설정)
- 시간, 로그레벨, 쓰레드, 클래스 명과 같은 부가적인 정보들을 볼 수 있음
- 콘솔출력 뿐 아니라, 파일, 네트워크 전송 등 별도로 기록할 수 있음
- 파일로 저장하는 경우 날짜나 용량으로 나눠서 저장할 수 있음
- System.out출력보다 성능이 좋음