Back to Intellij Community

StringConcatenationArgumentToLogCall

java/java-impl/resources/inspectionDescriptions/StringConcatenationArgumentToLogCall.html

2025.3-rc-21.1 KB
Original Source

Reports non-constant string concatenations that are used as arguments to SLF4J and Log4j 2 logging methods. Non-constant concatenations are evaluated at runtime even when the logging message is not logged; this can negatively impact performance. It is recommended to use a parameterized log message instead, which will not be evaluated when logging is disabled.

Example:

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
    }
  }

After the quick-fix is applied:

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
    }
  }

Configure the inspection:

  • Use the Warn on list to ignore certain higher logging levels. Higher logging levels may be enabled even in production, and the arguments will always be evaluated.