package egovframework.rte.fdl.logging;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.junit.Test;
public class Log4j2ParameterizedTest {
Logger logger = LogManager.getLogger();
long startTime;
long endTime;
String testStr = "Welcome To eGovFrame";
/**
* 아래는 Log4j2에 추가된 Parameterized Logging의 성능을 비교하는 테스트 메소드
* logger: level=TRACE, appender=Console
* */
@Test
public void testParameterizedLogging() {
// String Concatenation 방식으로 로깅
startTime = System.currentTimeMillis();
// logger가 debug레벨로 활성화되었는지 확인
if(logger.isDebugEnabled()) {
// String Concatenation 후 debug레벨로 활성화되었는지 다시 확인
logger.debug("Hellow eGovFrame" + testStr);
}
endTime = System.currentTimeMillis();
logger.debug("## String Concatation 방식 시작시간: " + startTime);
logger.debug("## String Concatation 방식 종료시간: " + endTime);
logger.debug("## String Concatation 방식 소요시간: " + (endTime - startTime) / 1000.0f + "초");
// Parameterized 방식으로 로깅
startTime = System.currentTimeMillis();
// logger가 debug레벨로 활성화되었는지 확인 후 파라미터 대입
logger.debug("Hellow eGovFrame {}", testStr);
endTime = System.currentTimeMillis();
logger.debug("## Parameterized 방식 시작시간: " + startTime);
logger.debug("## Parameterized 방식 종료시간: " + endTime);
logger.debug("## Parameterized 방식 소요시간: " + (endTime - startTime) / 1000.0f + "초");
}
}