- 스프링 부트 라이브러리에는 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출력보다 성능이 좋음
'WEB > spring' 카테고리의 다른 글
[Spring] @PathVariable (0) | 2021.05.30 |
---|---|
[Spring] HTTP요청 처리, @RequestParam, @ModelAttribute, @RequestBody, @ResponseBody (0) | 2021.05.30 |
[Spring] Spring MVC구조, Spring 동작원리, DispatherServlet (0) | 2021.05.30 |
[Spring] 스프링 빈 생명주기와 콜백 메서드, @PostConstruct, @PreDestroy (0) | 2021.04.18 |
[Spring] 자동 빈 등록(@Component) vs 수동 빈 등록(@Bean) (0) | 2021.04.18 |