メッセージをログに記録する際、満たされなければならないいくつかの重要な要件があります。
- ユーザーは簡単にログを取得することができなければなりません
- すべてログに記録されたメッセージの形式は、ユーザーが簡単にログを読むことができるように、統一する必要があります
- 記録対象データは、実際に記録しなければなりません
- 機密データはセキュアな形式で記録しなければなりません
プログラムが直接標準出力に書き込む場合、これらの要件を遵守することができません。そのため、専用ロガーの定義と使用を強く推奨します。
違反コード例
System.out.println("My Message"); // Noncompliant
準拠方法
logger.log("My Message");
参考
- JPCERT, ERR02-J. - ログ保存中の例外発生を防ぐ
- CERT, ERR02-J. - Prevent exceptions while logging data
補足事項
-
この内容は以下の、squid の説明文を日本語翻訳したものです。
sonar-java/S106_java.html at master · SonarSource/sonar-java
-
リンク化したら使いやすいかもしれないので、1ルールごとに1ページ化しています。
コメント