SLF4JLog4j 2 로그 메서드에 대한 인수로 사용되는 비상수 문자열 연결을 보고합니다. 비상수 연결은 로깅 메시지가 기록되지 않는 경우에도 런타임에 평가됩니다. 이 과정은 성능에 부정적인 영향을 줍니다. 대신에 매개변수화된 로그 메시지를 사용하는 것이 좋습니다. 이 메시지는 로깅이 비활성화되면 평가되지 않습니다.

예:


  public class Vital {
    private static final Logger LOG = LoggerFactory.getLogger(Vital.class);

    public void saveTheWorld(int i, String s, boolean b) {
      LOG.info("saveTheWorld(" + i + ", " + s + ", "  + b + ")");
      // todo
    }
  }

빠른 수정을 적용한 후:


  public class Vital {
    private static final Logger LOG = LoggerFactory.getLogger(Vital.class);

    public void saveTheWorld(int i, String s, boolean b) {
      LOG.info("saveTheWorld({}, {}, {})", i, s, b);
      // 작업 수행
    }
  }

검사 구성: