本文へ移動

これはセクションの複数ページ印刷用ビューです。 .

このページの通常のビューに戻る.

内部実装

etcdコントリビューター向けのディスカバリー、ログ、Goモジュールの規約。

1 - ログの規約

ログレベルの分類

etcdはzap ライブラリーを使用し、アプリケーションの出力をレベル別に分類してログに記録します。ログメッセージのレベルは、次の規約に従って決まります。

  • DebugLevelのログは通常、大量に出力されるため、本番環境では一般に無効にします。

    • 例:
      • リモートピアへの通常のメッセージの送信
      • ディスクへのログエントリーの書き込み
  • InfoLevelは、デフォルトのログ優先度です。

    • 例:
      • 起動時の構成
      • スナップショット作成の開始
      • クラスターへの新しいノードの追加
      • 認証サブシステムへの新しいユーザーの追加
  • WarnLevelのログはInfoより重要ですが、人が個別に確認する必要はありません。

    • 例:
      • リモートピアへのRaftメッセージの送信失敗
      • 設定された選出タイムアウト内でのハートビートメッセージの受信失敗
  • ErrorLevelのログは優先度が高いログです。アプリケーションが正常に動作している場合、エラーレベルのログは出力されないはずです。

    • 例:
      • WAL用のディスク領域の割り当て失敗
  • PanicLevelはメッセージをログに記録した後、パニックを発生させます。

    • 例:
      • Raftメッセージのエンコード失敗
  • FatalLevelはメッセージをログに記録した後、os.Exit(1)を呼び出します。

    • 例:
      • Raftスナップショットの保存失敗