SLF4J 및 Log4j 2 로깅 메서드에 대한 인수로 사용되는 문자열 템플릿을 보고합니다.
org.apache.logging.log4j.Logger.log()
메서드 및 오버로드는 모든 로그 수준 옵션에만 지원됩니다.
문자열 템플릿은 로깅 메시지가 기록되지 않는 경우에도 런타임에 평가됩니다. 이 과정은 성능에 부정적인 영향을 줍니다.
대신에 매개변수화된 로그 메시지를 사용하는 것을 권장합니다. 이 메시지는 로깅이 비활성화되면 평가되지 않습니다.
예(Kotlin):
val variable1 = getVariable()
logger.info("variable1: $variable1")
빠른 수정 적용 후(Kotlin):
val variable1 = getVariable()
logger.info("variable1: {}", variable1)
제안된 대체 항목은 예를 들어 문자열 템플릿에 메서드 호출이나 대입식이 포함된 경우 원래의 코드와 동일하지 않을 수 있습니다.
-
경고 대상 목록을 사용하여 특정한 상위 로깅 수준을 무시합니다. 상위 로깅 수준은 항상 활성화할 수 있으며, 인수는 항상 평가됩니다.
-
기본 타입, 래퍼 또는 문자열이 있는 표현식만 포함된 경우 경고 안 함 옵션을 사용하여 기본 타입, 래퍼 또는 문자열이 있는 표현식만 포함된 문자열 템플릿을 무시합니다.
이는 예를 들어, 컬렉션의 지연 로드를 방지하는 데 도움이 될 수 있습니다.
단, 기본 타입, 래퍼 또는 문자열이 있는 표현식만 포함하는 문자열을 런타임에 생성하더라도 성능에 부정적인 영향을 미칠 수 있습니다.
-
Use the Do not warn when call only with an exception as argument after message argument option to ignore
calls, which contain only exception as an argument after message argument.
For example, it could be useful to adjust the inspection's behaviour with a custom code style.
2023.1의 새로운 기능