김영한님의 스프링부트 강의를 듣다가 놓치기 쉬운 주의사항이 있어 기록한다.
slf4j를 사용할 때, 2가지 방법을 사용할 수 있다.
log.debug("data=" + data);
log.debug("data={}", data);
두 가지 로그는 결과적으론 차이가 없지만 실행 과정에서 차이를 보인다.
- 첫 번째 로그는 로그 출력 레벨이 debug가 아닌 info로 설정해도 해당 코드에 있는
string 연산이 실행된다.
즉, 출력되지 않는 로그지만 메모리에 올라가 연산이 실행되게 된다.
- 두 번째 로그는 로그 출력 레벨이 info로 설정되어 있는 상태면 메서드 자체를 실행하지 않기 때문에 연산이 실행되지 않는다.
따라서, 되도록이면 두 번째 방법으로 로그를 남기는 습관을 들이자.