SonarQube squid:S106 標準出力はログ出力に使用すべきではありません


メッセージをログに記録する際、満たされなければならないいくつかの重要な要件があります。

  • ユーザーは簡単にログを取得することができなければなりません
  • すべてログに記録されたメッセージの形式は、ユーザーが簡単にログを読むことができるように、統一する必要があります
  • 記録対象データは、実際に記録しなければなりません
  • 機密データはセキュアな形式で記録しなければなりません

プログラムが直接標準出力に書き込む場合、これらの要件を遵守することができません。そのため、専用ロガーの定義と使用を強く推奨します。

違反コード例

System.out.println("My Message");  // Noncompliant

準拠方法

logger.log("My Message");

参考

補足事項

  • この内容は以下の、squid の説明文を日本語翻訳したものです。

    sonar-java/S106_java.html at master · SonarSource/sonar-java

  • リンク化したら使いやすいかもしれないので、1ルールごとに1ページ化しています。

  • こちらに原本はあります。

    • コメント