참치코더의 꿈 메모장

Spring / 스프링 로깅, 로그 라이브러리 사용법 본문

Spring

Spring / 스프링 로깅, 로그 라이브러리 사용법

참치깡 2025. 9. 12. 12:51
728x90

로그 라이브러리

 

- 모든 로그 라이브러리의 부모 라이브러리는 SLF4J 라이브러리이다.

- SLF4J는 인터페이스이고, 그 구현체로 Logback같은 로그 라이브러리를 선택하면 된다.

- 실무에서는 스프링 부트가 기본으로 제공하는 Logback을 대부분 사용한다.

 

로그 선언

1
2
3
4
5
6
7
8
9
// 선언 방법 1.
private Logger log = LoggerFactory.getLogger(getClass());
 
// 선언 방법 2.
private static final Logger log = LoggerFactory.getLogger(Xxx.class);
 
// 선언 방법 3.
@Slf4j (롬복 사용)
 
cs

 

@RestController

- @Controller는 반환 값이 String이면 뷰 이름으로 인식된다. (뷰를 찾고 뷰가 랜더링)

- @RestController는 반환 값으로 뷰를 찾는 것이 아니라, HTTP 메시지 바디에 바로 입력된다.

  (REST API 만들때 사용)

 

- 로그가 출력되는 포멧

(시간, 로그 레벨, 프로세스 ID, 쓰레드 명, 클래스명, 로그 메시지)

 

- LEVEL : TRACE > DEBUG > INFO > WARN > ERROR

(개발 서버는 DEBUG 출력, 운영 서버는 INFO 출력)

1
2
3
4
5
6
7
8
9
# 로그 레벨 설정
# 전체 로그 레벨 설정(기본 info)
#application.properties에 설정
 
logging.level.root = info
 
#hello.springmvc 패키지와 그 하위 로그 레벨 설정
 
logging.level.hello.springmvc=debug
cs

 

올바른 로그 사용법

 

log.debug("data = { }", data) -> 이렇게 사용하면 연산이 실행하기 전에 먼저 검사가 진행되어 불필요한 실행이 되지 않는다.

log.debug("data = " + data) -> 이걸로 사용하면 안에 있는 + 연산부터 계산이 되기 때문에 불필요한 리소스 사용이 발생한다.

728x90
Comments