ログ規約
1. [必須] アプリケーションはログ システム (Log 4 j、Logback) の API を直接使用できませんが、ログ フレームワーク SLF 4 J の API に依存し、ファサード モード ログを使用する必要があります。カテゴリごとのログ処理方法の維持と統一に役立ちます。 import org.slf4j.Logger;
import org.slf4j.LoggerFactory; private static final Logger logger = LoggerFactory.getLogger(Abc.class);
2. [必須] 一部の例外には次のような特徴があるため、ログ ファイルは少なくとも 15 日間保存することをお勧めします。 「毎週」の頻度。
3. 【必須】アプリケーション内の拡張ログ(管理、一時監視、アクセスログなど) 命名方法:
appName _ logType _ ログ名 .log。 logType: ログ タイプ、推奨カテゴリには
stats / desc /monitor / visit などが含まれます; logName: ログの説明。この種の名前付けの利点は、ファイル名を通じて、ログ ファイルがどのアプリケーションに属しているか、どのタイプ、どのような目的であるかを知ることができるため、分類や検索にも役立ちます。
#良い例:mppserver アプリケーションでタイム ゾーン変換例外を個別に監視します (例: mppserver _monitor _ timeZoneConvert .log#) # #説明:
開発者が閲覧しやすくするため、また、ログを通じてシステムをタイムリーに監視するため、エラーログと業務ログを可能な限り分けて保存することを推奨します。4. [必須] トレース/デバッグ/情報レベルのログ出力には、条件付き出力形式を使用するか、プレースホルダーを使用する必要があります。 。
説明: logger . debug( " ID : " id " シンボル : " シンボルで取引を処理中);
ログ レベルが警告の場合、上記のログは出力されませんが、文字列の結合操作が実行されます。シンボルがオブジェクトの場合、は toString() メソッドを実行しますが、これによりシステム リソースが無駄になります。上記の操作を実行した後、最終的なログは出力されません。
正の例: (条件)
if (logger.isDebugEnabled()) { logger.debug("Processing trade with id: " + id + " symbol: " + symbol); }
正の例: (プレースホルダー)
logger.debug("Processing trade with id: {} symbol : {} ", id, symbol);5 . [必須] ログを繰り返し出力してディスク領域を無駄にしないように、log 4 j .xml で additivity = false を設定してください。
良い例:
<ロガー名="com.taabao.dubbo.config" additivity="false"># # 6. 【必須】例外情報には、犯罪現場情報と例外スタック情報の 2 種類の情報を含める必要があります。処理されない場合は、廃棄してください。
良い例:
7. [推奨事項] ユーザから苦情が出たときに困惑することを避けるために、警告ログ レベルを使用してユーザ入力パラメータのエラーを記録できます。ログ出力レベルに注意してください。エラーレベルには、システムロジックエラーや例外などの重要なエラー情報のみが記録されます。絶対に必要でない場合は、このシナリオではエラー レベルを入力しないでください。
8. [推奨] ログを注意深く記録してください。運用環境ではデバッグ ログを出力することは禁止されています。情報ログを選択的に出力します。
展開し、これらの観察ログを時間内に忘れずに削除してください。
注:無効なログを大量に出力すると、システムのパフォーマンスが向上したり、エラー ポイントを迅速に特定したりすることはできません。ログを記録するときは、次のことを考えてください: 本当にこれらのログを読んでいる人はいるのでしょうか?このログを見た後、何ができるでしょうか?トラブルシューティングにメリットをもたらすでしょうか?