내용추가) jsp geek님의 "Log4J 로깅 비용 계산" 을 참고하자.
- 여기서는 isDebugEnable()이라 하더라도, for/ while문처럼 반복문 안에 있다면
많은 비용이 발생한다고 얘기한다.
즉, 레벨 체크가 두번 씩 이루어지기 때문이다.
나미라는 분의 "Log4j에서 isDebugEnabled() 로 체크해줘야 하는 이유" 을 보면,
다음 둘의 차이점(퍼포먼스)을 얘기해주고 있다.
logger = Logger.getLogger("stdout");
logger.debug("나는 디버그야");
or
if(logger.isDebugEnabled())
{
logger.debug("나는 디버그야");
}
C에서 디버그용 메세지를 다룰때는.. 다음처럼 macro로 사용했었는데,
java에서는 어떻게 해야 하는지 모르겠다.
#ifdef DEBUG_ENABLED
#define DEBUG debug_func(...)
#else
#define DEBUG
#endif
그렇다고, 위에처럼 if()..>조건 문을 일일이 넣기는 지저분한것 같고..
[추가] Conditional Compilation Java
- java에서 C의 #ifdef, #endif 처럼 사용할수 있는 팁을 소개한 곳이 있다.