■ 로깅 라이브러리
스프링 부트 라이브러리를 사용하면 스프링 부트 로깅 라이브러리(spring-boot-starter-logging)가 함께 포함
스프링 부트 로깅 라이브러리는 기본으로 다음 로링 라이브러리를 사용
- SLF4J - http://www.slf4j.org
- Logback -http://logback.qs.ch
- 로그 라이브러리는 Logback, Log4J, Log4J2 등등 수 많은 라이브러리가 있는데, 그것을 통합해서 인터페이스로 제공하는 것이 SLF4J 라이브러리
- 즉, SLF4J는 인터페이스이고, 그 구현체로 Logback 같은 로그 라이브러리를 선택해서 사용하면 된다.
- 실무에서는 스프링 부트가 기본으로 제공하는 Logback을 대부분 사용
[로그 사용 시 장점]
- 쓰레드 정보, 클래스 이름 같은 부가 정보를 함께 볼 수 있고 출력 모양얼 조정
- 로그 레벨에 따라 개발 서버에서는 모든 로그를 출력, 운영 서버에서는 출력하지 않는 등 로그를 상황에 맞게 조절
- 파일이나 네트워크 등 로그를 별도의 위치에 남길 수 있다. 특히 파일로 남길 때는 일별, 특정 용량에 따라 로그를 분할하는 것도 가능
■ LogTest
[로그 선언 방법]
- private Logger log = LoggerFactory.getLogger(getClass());
- private static final Logger log = LoggerFactory.getLogger(Xxx.class);
- @Slf4j : 롬복 사용
[테스트]
- 로그가 출력되는 포멧 : 시간, 로그 레벨, 프로세스 ID, 쓰레드 명, 클래스 명, 로그 메시지
- 로그 레벨 : TRACE > DEBUG > INFO > WARN > ERROR
- 개발 서버 : DEBUG
- 운영 서버 : INFO
[로그 레벨 설정]
- application.properties
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;
@RestController
@Slf4j //Logger 객체를 자동으로 생성해준다.
public class LogTestController {
// private final Logger log = LoggerFactory.getLogger(getClass());
@RequestMapping("/log-test")
public String logTest(){
String name = "String";
// log의 level
log.trace("trace log={}", name);
/**
* 이럴 경우, 로그 레벨을 debug로 설정해도 출력이 되지 않을 뿐,
* + 연산이 이루어져서 필요없는 리소스를 사용하게 된다.
*/
// 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";
}
}
'SpringMVC' 카테고리의 다른 글
[스프링 웹 MVC] 웹 애플리케이션의 이해 (0) | 2022.04.12 |
---|---|
[인프런 강의 복습]스프링 MVC 1편 - 요청 매핑 (0) | 2022.02.21 |
[인프런 강의 복습]스프링 MVC 1편 - 스프링 MVC 전체 구조 (0) | 2022.02.20 |
[인프런 강의 복습]스프링 MVC 1편 - adapter 추가 (0) | 2022.02.18 |
[인프런 강의 복습]스프링 MVC 1편 - model 분리 (0) | 2022.02.18 |