로거의 경우 모든 로거에 대해 매개 변수 생성 비용이 숨겨져 있다고합니다.log4j v2 형식 지정 기능
예 -
logger.debug("Entry number: " + i + " is " + String.valueOf(entry[i]));
이 관계없이 메시지가 될 것이다 여부 즉, 메시지 파라미터를 구성하는 I 및 항목 [I]는 문자열을 모두 정수로 변환하고, 중간 문자열을 연결하는 비용을 초래 기록 여부. 이 매개 변수 구성 비용은 상당히 높을 수 있으며 매개 변수의 크기에 따라 달라집니다.
log 4j 사이트에서 매개 변수 생성 비용을 피하는 가장 좋은 방법은 Log4j 2의 형식 지정 기능을 사용하는 것입니다. 예를 들어, 위의 대신에 쓰기 :
logger.debug("Entry number: {} is {}", i, entry[i]);
이 시간 내에 발생한 비용은이 서식 기능 내에서 발생합니다. 그것은 이전의 경우에 생성하는 데 사용되는 것처럼 문자열을 생성하지 않습니까? 누군가 설명해 주시겠습니까?
제 첫 번째 쿼리는 logger.debug에서 3 개의 인수를 전달하는 두 번째 옵션에서 사용 된 변경된 메서드에 대한 것입니다.이 메서드는 이러한 인수를 어떻게 처리 할 것입니까? log4j v2의 포맷팅 기능에서 새로운 점 두 번째로, 매개 변수를 작성하기 전에 두 번째 경우에 로거는 디버그 모드 사용 여부를 점검합니다. –