In diesem Dokument wird beschrieben, wie Sie Logging in Rust aktivieren. Durch das Protokollieren von Anfragen und Antworten in der Konsole kann die Fehlerbehebung bei Anwendungen erleichtert werden.
Vorbereitung
In dieser Anleitung wird die Secret Manager API verwendet, die aktiviert werden muss, bevor Sie beginnen. Kurzanleitung für Dienste
Eine vollständige Einrichtungsanleitung für die Rust-Bibliotheken finden Sie unter Erste Schritte mit Rust.
Abhängigkeiten
Sie müssen die Abhängigkeiten in der Datei Cargo.toml deklarieren:
cargo add google-cloud-secretmanager-v1 google-cloud-gax
Logging aktivieren
Die Rust-Clientbibliotheken verwenden das tracing-Crate von Tokio, um bereichsbezogene, strukturierte und asynchrone Diagnosedaten zu erfassen. Das Tracing-Crate trennt Quellen für Diagnosedaten (z. B. die Rust-Clientbibliotheken) von den Komponenten, die diese Diagnosedaten mithilfe des Subscriber-Traits erfassen. Für Subscriber sind viele Implementierungen verfügbar. In diesem Beispiel verwenden wir den fmt-Subscriber, der im tracing-subscriber-Crate enthalten ist.
Fügen Sie eine Abhängigkeit von der
tracing-subscriber-Crate hinzu:cargo add tracing tracing-subscriberSchreiben Sie eine Funktion, die die Projekt-ID als Funktionsparameter empfängt:
Fügen Sie einige „use“-Deklarationen ein, um das Beispiel lesbarer zu machen:
Initialisieren Sie den Standard-Tracing-Subscriber:
Initialisieren Sie einen Client mit aktivierter Ablaufverfolgung. Beachten Sie den Aufruf von
.with_tracing():Senden Sie dann mit dem Client eine Anfrage:
Erwartete Ausgabe
Die Ausgabe (zur besseren Lesbarkeit leicht bearbeitet) enthält eine Zeile wie:
2025-11-03T14:17:31.759452Z INFO list_secrets{self=SecretManagerService ...
Diese Zeile enthält die Anfrage:
req=ListSecretsRequest { parent: "projects/... }
Die Antwort:
return=Ok(Response { parts: ..., body: ListSecretsResponse { ...
Weitere Informationen
Der mit tracing_subscriber::fmt::init() erstellte Standardabonnent kann dynamisch mit der Umgebungsvariable RUST_LOG konfiguriert werden. Weitere Informationen finden Sie in der Dokumentation.