Mit Logpoints arbeiten

Nachdem Sie das Debuggen in Cloud Debugger eingerichtet und Ihre App bereitgestellt oder gestartet haben, können Sie Logpoints in der Quellkonsole hinzufügen.

Logpoints-Übersicht

Mit Logpoints können Sie Logging in laufende Dienste einbinden, ohne sie neu starten zu müssen oder deren normale Funktion zu beeinträchtigen. Jedes Mal, wenn eine Instanz Code am Speicherort des Logpoints ausführt, protokolliert Debugger eine Nachricht. Die Logausgabe wird an das entsprechende Log für die Zielumgebung gesendet. Bei App Engine wird die Ausgabe beispielsweise an das Anfragelog in Cloud Logging gesendet.

Logpoints bleiben ab ihrer Erstellung für 24 Stunden aktiv oder so lange, bis sie gelöscht werden oder der Dienst neu bereitgestellt wird.

Debugging-Logpoint hinzufügen

  1. Öffnen Sie Cloud Source Repositories in der Google Cloud Console.

    Cloud Source Repositories öffnen

    Die Seite Alle Repositories wird geöffnet. Alternativ können Sie die Ansicht Meine Quelle öffnen.

  2. Klicken Sie auf den Namen eines Repositorys.

  3. Rufen Sie die Datei mit dem Quellcode auf, den Sie sich ansehen möchten.

  4. Klicken Sie auf die Zeilennummer der Quellcode-Position.

    Speicherort des Logpoints auswählen

  5. Wenn Sie dazu aufgefordert werden, wählen Sie die Anwendung aus, der Sie den Logpoint hinzufügen möchten.

    Logpoint-Anwendung auswählen

  6. Klicken Sie auf Logpoint erstellen.

    Logpoint erstellen

  7. Geben Sie bei Aufforderung die Logpoint-Bedingung und -Nachricht ein.

    Logpoint erstellen

  8. Klicken Sie auf Hinzufügen.

    Nachdem Sie einen Logpoint hinzugefügt haben, wird der Ausdruck in der Dateiansicht in der Quellkonsole inline angezeigt. Halten Sie zum Bearbeiten des Logpoints den Mauszeiger darüber und klicken Sie auf Bearbeiten .

Logpoint-Bedingungen

Eine Logpoint-Bedingung ist ein einfacher Ausdruck, der mit true ausgewertet werden muss, damit der Logpoint protokolliert wird. Logpoint-Bedingungen werden jedes Mal ausgewertet, wenn eine Instanz die Codezeile ausführt, bis der Logpoint abläuft oder gelöscht wird.

Die Bedingung ist ein vollständiger boolescher Ausdruck, der logische Operatoren enthalten kann:

travelAccessory == "Towel"
ultimateAnswer <= 42
travelAccessory == "Towel" && ultimateAnswer <= 42

Logpoint-Nachrichten

Die Nachricht eines Logpoints legt fest, was in der Ausgabe protokolliert wird. Sie können über Ausdrücke Werte von Interesse untersuchen und protokollieren. Alles in der Nachricht zwischen geschweiften Klammern wie {myObj.myFunc()} oder {a + b} wird durch den Wert dieses Ausdrucks in der Ausgabe ersetzt. Die Nachricht User {name} scored {newScore.score} im obigen Beispiel protokolliert die Ausgabe ähnlich wie User user1 scored 99.

Sie können die folgenden Sprachfunktionen für Ausdrücke verwenden.

Java

Die meisten Java-Ausdrücke werden unterstützt, darunter:
  • Lokale Variablen: a == 8.
  • Numerische und boolesche Operatoren: x + y < 20.
  • Instanzfelder und statische Felder: this.counter == 20, this.myObj.isShutdown, myStatic oder com.mycompany.MyClass.staticMember.
  • Stringvergleiche mit dem Gleichheitsoperator: myString == "abc".
  • Funktionsaufrufe. Sie können nur schreibgeschützte Funktionen verwenden. Beispiel: StringBuilder.indexOf() wird unterstützt, StringBuilder.append() jedoch nicht.
  • Typumwandlung mit vollständig qualifizierten Typen: ((com.myprod.ClassImpl) myInterface).internalField.

Folgende Sprachfunktionen werden nicht unterstützt:

  • Entpacken numerischer Datentypen wie Integer; verwenden Sie stattdessen myInteger.value.

Python

Die meisten Python-Ausdrücke werden unterstützt, einschließlich:
  • Lesen lokaler und globaler Variablen
  • Lesen aus Arrays, Listen, Segmenten, Dictionaries und Objekten
  • Aufrufen einfacher Methoden

Folgende Sprachfeatures werden nicht unterstützt:

  • Aufruffunktionen, die neue Objekte zuweisen oder komplexe Konstrukte verwenden
  • Erstellen neuer Objekte innerhalb eines Ausdrucks

Go (Beta)

Der überwiegende Teil der Go-Syntax wird unterstützt, darunter:
  • Lesen lokaler und globaler Variablen
  • Lesen aus Arrays, Segmenten, Maps und Structs

Folgende Sprachfunktionen werden nicht unterstützt:

  • Lesen aus Schnittstellenwerten
  • Typumwandlungen und zusammengesetzte Literale
  • Alle Funktionsaufrufe außer len.

Ausgabeanzeige

Die Ergebnisse werden an das für die Zielumgebung geeignete Protokoll gesendet.

App Engine

Logpoints, die in App Engine-Anwendungen festgelegt wurden, senden ihre Ausgabe an das Anfragelog in Logging.

Sie können die Logs im Logbereich oder in der speziell dafür vorgesehenen Loganzeige aufrufen.

Compute Engine

Logpoints, die in Compute Engine-Anwendungen festgelegt wurden, senden ihre Ausgabe an denselben Speicherort wie reguläre Logberichte. In Python sendet das Standard-Logging-Modul seine Ausgabe beispielsweise an stdout. Es kann jedoch so konfiguriert werden, dass es in eine bestimmte Datei schreibt.

Sie können den Logging-Agent so einrichten, dass diese Logs an Logging weitergeleitet werden. Von dort aus können Sie die Logs in der Loganzeige ansehen.

Logpoints löschen

Logpoints werden nach 24 Stunden inaktiv und beenden die Logging-Nachrichten. Nach 30 Tagen werden sie automatisch gelöscht. Sie können Logpoints manuell löschen. Dadurch wird das Logging gestoppt und aus dem Verlauf gelöscht. Durch das Löschen eines Logpoints werden jedoch nicht bereits erstellte Lognachrichten gelöscht.

So löschen Sie einen Logpoint:

Halten Sie auf dem Tab Logpoints im unteren Bereich der GCP Console den Mauszeiger auf den Logpoint und klicken Sie dann auf Löschen .

Logpoint löschen

Nächste Schritte