ログ規約


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 種類の情報を含める必要があります。処理されない場合は、廃棄してください。


良い例:

logger.error(さまざまなパラメータまたはオブジェクト toString "_" e.getMessage(), e);

7. [推奨事項] ユーザから苦情が出たときに困惑することを避けるために、警告ログ レベルを使用してユーザ入力パラメータのエラーを記録できます。ログ出力レベルに注意してください。エラーレベルには、システムロジックエラーや例外などの重要なエラー情報のみが記録されます。絶対に必要でない場合は、このシナリオではエラー レベルを入力しないでください。


8. [推奨] ログを注意深く記録してください。運用環境ではデバッグ ログを出力することは禁止されています。情報ログを選択的に出力します。

warn を使用して、最初にオンラインになったときにビジネス動作情報を記録する場合は、ログ出力の量に必ず注意し、ログの消費を避けるようにしてください。サーバー ディスク

展開し、これらの観察ログを時間内に忘れずに削除してください。

注:

無効なログを大量に出力すると、システムのパフォーマンスが向上したり、エラー ポイントを迅速に特定したりすることはできません。ログを記録するときは、次のことを考えてください: 本当にこれらのログを読んでいる人はいるのでしょうか?このログを見た後、何ができるでしょうか?トラブルシューティングにメリットをもたらすでしょうか?