ガード条件で囲まれておらず、定数でない引数を使用しているロギング呼び出しを報告します。 ロギング呼び出しの引数を評価するのは、コストがかかる可能性があります。 ロギング呼び出しをガード節で囲むと、ロギングステートメントで使用されているレベルでロギングが無効になっている場合のコストを抑えることができます。 これは、プロダクション環境では往々にして無効になっている最も深刻度の低いロギング呼び出しのレベル (trace, debug, finest) で特に役立ちます。

例:


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

インスペクションの構成: