报告带有未被保护条件包围的非常量参数的日志记录调用。 对日志记录调用的参数的评估可能代价高昂。 当日志记录语句使用的级别禁用日志记录时,使用临界子句包围日志记录调用可避免这种开销。 这对于最不严重的日志记录调用级别(跟踪、调试、最精细)特别有用,因为这些调用在生产环境中最常被禁用。

示例:


  public class Principal {
    void bad(Object object) {
      if (true) {
        LOG.debug("log log log " + expensiveCalculation(object));
      }
      LOG.debug("some more logging " + expensiveCalculation(1));
    }

    void good(Object) {
      if (LOG.isDebug()) {
        LOG.debug("value: " + expensiveCalculation(object));
      }
    }
  }

配置检查: