스프링MVC

로깅 간단하게 알아보기

salmon16 2023. 8. 18. 21:10

운영 시스템에서 System.out.println()같은 시스템 콘솔을 사용하지 않고 로깅 라이브러리를 사용해서 로그를 출력한다.

 

로그라이브러리는 많이 있지만 그것을 인터페이스로 제공하는 것이 SLF4J이다 

그중 구현체로 Logback을 많이 사용한다. (스프링부트가 기본으로 제공한다)

 

로그 선언을 자바 코드로 아래 처럼 하면 된다.

private Logger log = LoggerFactory.getLogger(getClass());

하지만 롬복을 사용하면 @Slf4j 애노테이션을 사용하면 위 코드를 작성하지 않아도 된다.

이제 로그를 사용해 보자.

String name = "Spring";

log.trace("trace log={}", name);
log.debug("debug log={}", name);
log.info(" info log={}", name);
log.warn("wran log={}", name);
log.error("error log={}", name);

결과물을 보자

로그의 형식을 보면

시간, 로그레벨, 프로세스 ID, 클래스명, 로그메시지 형태로 출력이 된다.

로그 레벨에 따라 개발 서버에서는 모든 로그를 출력하고, 운영서버에서는 출력하지 않는 등 로그를 상황에 맞게 조절할 수 있다.

로그 레벨은 TRACE > DEBUG > INFO > WRAN > ERROR 순서이다.

 

로그레벨 설정은 application.properties파일에서 하면 된다

#전체 로그 레벨 설정(기본 info)

loggin.level.root=DEBUG를 하면 DEBUG 아래 레벨의 로그들은 출력이 된다.

#hello.springmvc 패키지와 그 하위 로그 레벨 설정

logging.level.hello.springmvc=debug 로 설정할 수 있다.

올바른 로그 사용법

log.debug("data="+data) 

처럼 로그를 사용해도 되지만 이렇게 하면 debug레벨의 로그를 출력하지 않는 레벨에서도 더하기 문자 연산인 "data="+data가 실행되고 로그는 출력되지 않는다.

그러면 출력되지 않는 로그인데 연산을 해야 하므로 효율적이지 못하다

그러므로 로그는 log.debug("data={}", data)로 사용해야 필요 없는 연산을 제거할 수 있다 ({}에 data의 값이 들어간다.)

 

출처 : 스프링MVC 1편 - 백엔드 웹 개발 핵심 기술 김영한

'스프링MVC' 카테고리의 다른 글

HTTP 요청 -기본, 헤더, 데이터 조회  (0) 2023.08.22
스프링 MVC 기본 기능  (0) 2023.08.21
스프링 MVC 시작하기  (0) 2023.08.10
뷰 리졸버  (0) 2023.08.08
핸들러 매핑과 핸들러 어댑터  (0) 2023.08.08