|
Dies ist eine unveröffentlichte Dokumentation für Admission Controller 1.37-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.