Zum Inhalt springen

Konventionen für die Protokollierung

Kategorien der Protokollierungsstufen

etcd verwendet die Bibliothek zap , um Anwendungsausgaben nach Stufen gegliedert zu protokollieren. Die Stufe einer Protokollmeldung richtet sich nach diesen Konventionen:

  • DebugLevel-Meldungen sind meist umfangreich und im Produktivbetrieb üblicherweise deaktiviert.

    • Beispiele:
      • Eine normale Nachricht an einen entfernten Peer senden
      • Einen Protokolleintrag auf den Datenträger schreiben
  • InfoLevel ist die standardmäßige Protokollierungspriorität.

    • Beispiele:
      • Startkonfiguration
      • Einen Snapshot beginnen
      • Einen neuen Knoten zum Cluster hinzufügen
      • Einen neuen Benutzer zum Authentifizierungssubsystem hinzufügen
  • WarnLevel-Meldungen sind wichtiger als Info-Meldungen, müssen aber nicht einzeln von einer Person geprüft werden.

    • Beispiele:
      • Fehler beim Senden einer Raft-Nachricht an einen entfernten Peer
      • Keine Heartbeat-Nachricht innerhalb des konfigurierten Wahlzeitlimits empfangen
  • ErrorLevel-Meldungen haben hohe Priorität. Wenn eine Anwendung störungsfrei läuft, sollte sie keine Meldungen dieser Stufe erzeugen.

    • Beispiele:
      • Fehler beim Zuweisen von Datenträgerspeicher für das WAL
  • PanicLevel protokolliert eine Meldung und löst anschließend eine Panic aus.

    • Beispiele:
      • Fehler beim Kodieren von Raft-Nachrichten
  • FatalLevel protokolliert eine Meldung und ruft anschließend os.Exit(1) auf.

    • Beispiele:
      • Fehler beim Speichern eines Raft-Snapshots