报告用作 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 最新变化