개발놀이터

스프링 로깅 본문

Spring/Spring

스프링 로깅

마늘냄새폴폴 2021. 8. 19. 07:30

*로깅

운영 시스템에서는 System.out.println() 같은 시스템 콘솔을 사용해서 필요한 정보를 출력하지 않고, 별도의 로깅 라이브러리를 사용해서 로그를 출력한다.
참고로 로그 관련 라이브러리도 많고, 깊게 들어가면 끝이 없기 때문에, 여기서는 최소한의 사용 방법만 알아본다.


*로깅 라이브러리
스프링 부트 라이브러리를 사용하면 스프링 부트 로깅 라이브러리가 함께 포함된다. 스프링 부트 로깅 라이브러리는 기본적으로 다음 로깅 라이브러리를 사용한다.
-SLF4J : http://www.slf4j.org
-Logback : http://logback.qos.ch

로그 라이브러리는 Logback, Log4J, Log4J2 등등 수 많은 라이브러리가 잇는데, 그것을 통합해서 인터페이스로 제공하는 것이 바로 SLF4J 라이브러리다. 쉽게 얘기해서 SLF4J는 인터페이스이고 그 구현체로 Logback 같은 로그 라이브러리를 선택하면 된다. 실무에서는 스프링 부트가 기본으로 제공하는 Logback을 대부분 사용한다.


*로그 선언
private final Logger log = LoggerFactory.getLogger(getClass()); //Logger, LoggerFactory둘 다 org.slf4j에 있는 것을 사용해야 한다.


*로그 찍기
-log.trace("trace log={}", 로그내용);
-log.debug("debug log={}", 로그내용);
-개발 단계에서 찍는 로그

-log.info("info log={}", 로그내용);
-log.warn("warn log={}", 로그내용);
-log.error("error log={}", 로그내용);
-운영 단계에서 찍는 로그

application.properties에 들어가서 
logging.level.패키지경로=trace or debug or info or warn or error 

trace = 모든 로그 다찍겠다
debug = 트레이스는 안찍고 debug 부터 info, warn, error 찍겠다 //개발서버에서 사용
info = 디버그까지도 안찍고 info 부터 warn, error 찍겠다. //운영서버에서 사용

*level
trace > debug > info > warn > error


cf) @RestController 
-@Controller는 반환값이 String이면 뷰 이름으로 인식된다. 그래서 뷰를 찾고 뷰가 랜더링 된다.
-@RestController는 반환 값으로 뷰를 찾는 것이 아니라, HTTP메시지 바디에 바로 입력한다. 따라서 실행 결과로 메시지를 받을 수 있따. @ResponseBody와 관련이 있는데 뒤에서 더 자세히 설명하겠다. => RestAPI를 사용할때 주요한 어노테이션


*@Slf4j
매번 선언하는것이 여간 귀찮은것이 아닐것이다. 그런 귀찮은 사람을 위해 준비한 어노테이션인 @Slf4j이다. 롬복이 제공하는 어노테이션이고 선언문을 자동으로 넣어주는 어노테이션이다.

'Spring > Spring' 카테고리의 다른 글

스프링 요청파라미터  (0) 2021.08.19
스프링 요청매핑  (0) 2021.08.19
스프링 MVC 구조  (0) 2021.08.19
스프링 빈 스코프  (0) 2021.08.16
스프링 빈 생명주기 콜백  (0) 2021.08.16