|
Dieses Dokument wurde mithilfe automatisierter maschineller Übersetzungstechnologie übersetzt. Wir bemühen uns um korrekte Übersetzungen, übernehmen jedoch keine Gewähr für die Vollständigkeit, Richtigkeit oder Zuverlässigkeit der übersetzten Inhalte. Im Falle von Abweichungen ist die englische Originalversion maßgebend und stellt den verbindlichen Text dar. |
|
Dies ist eine unveröffentlichte Dokumentation für Admission Controller 1.34-dev. |
Protokollierung
Das Go SDK integriert sich fast ohne Anpassungen in das
onelog
Projekt.
Das Projekt hat sich für diese Bibliothek entschieden:
-
Es funktioniert mit WebAssembly-Binärdateien. Andere beliebte Logging-Lösungen können nicht für WebAssembly kompiliert werden.
-
Es bietet gute Leistung.
-
Es unterstützt strukturiertes Logging.
Logger initialisieren
Sie müssen eine Logger-Struktur initialisieren.
Durch die Durchführung dieser Initialisierung in einer globalen Variablen können Sie von den beiden Hauptzugangspunkten der Richtlinie protokollieren: validate und
validate_settings.
Im Hauptpaket main.go gibt es eine Initialisierung für den Logger:
var (
logWriter = kubewarden.KubewardenLogWriter{}
logger = onelog.New(
&logWriter,
onelog.ALL, // shortcut for onelog.DEBUG|onelog.INFO|onelog.WARN|onelog.ERROR|onelog.FATAL
)
)
Logger verwenden
Jetzt können Sie das logger-Objekt verwenden, um in Ihrer Richtlinie von überall zu protokollieren:
func validate(payload []byte) ([]byte, error) {
// ...
logger.Info("validating request")
// ...
}
Sie können strukturiertes Logging hinzufügen:
func validate(payload []byte) ([]byte, error) {
// ...
logger.WarnWithFields("logging something important", func(e onelog.Entry) {
e.String("one_field", "a value")
e.String("another_field", "another value")
})
// ...
}
Weitere Informationen finden Sie in der
onelog Dokumentation
.
Das Protokollieren der Richtlinie erfolgt an die Richtlinienauswerter (zum Beispiel kwctl oder policy-server) und diese protokollieren im Namen der Richtlinie.
Sie verwenden Mechanismen, die mit anderen Komponenten interoperabel sind, die verteiltes Tracing ermöglichen, wie zum Beispiel Jaeger.