아무거나

Log4J 에서 isDebugEnabled() 을 사용한 효율적인 리소스 관리 본문

Java & Kotlin/Spring

Log4J 에서 isDebugEnabled() 을 사용한 효율적인 리소스 관리

전봉근 2020. 5. 8. 01:05
반응형

 

일반적으로 log4j를 사용하는 코드를 보자.

   log.debug("error message example")

위와 같은 방식으로 사용하는 경우가 있으며 아래 코드를 보자

   if (log.isDebugEnabled()) {
      log.debug("error message example");
   }

이렇게 되면 두번이나 체크하게 될텐데 효과적일까? 라는 의문을 갖게 된다.
예를 들어 log.debug("Entry Number: " + i + ", Value: " + String.valueOf(entry[i])) 이런식으로 디버깅을 사용한다고 하자.
이러면 메세지 파라미터를 생성할 때 String 연산들이 일어나게 되며 해당 작업은 메세지 로깅여부에 상관없이 항상 발생하게 되어 파라미터 생성 비용을 발생시킬 수 있다.

 

* 즉, 반복문상에서 로그를 남길때 사용해야 좋다 (한 번 실행되는 로직에는 상관없음)

반응형
Comments