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
Ö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.
Klicken Sie auf den Namen eines Repositorys.
Rufen Sie die Datei mit dem Quellcode auf, den Sie sich ansehen möchten.
Klicken Sie auf die Zeilennummer der Quellcode-Position.
Wenn Sie dazu aufgefordert werden, wählen Sie die Anwendung aus, der Sie den Logpoint hinzufügen möchten.
Klicken Sie auf Logpoint erstellen.
Geben Sie bei Aufforderung die Logpoint-Bedingung und -Nachricht ein.
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 create.
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 Vorgänge:
x + y < 20
. - Instanz- und statische Felder:
this.counter == 20
,this.myObj.isShutdown
,myStatic
odercom.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. - Typstreaming mit voll qualifizierten Typen:
((com.myprod.ClassImpl) myInterface).internalField
.
Folgende Sprachfunktionen werden nicht unterstützt:
- Entfernen von numerischen Typen, z. B.
Integer
, verwenden Sie stattdessenmyInteger.value
.
Python
Die meisten Python-Ausdrücke werden unterstützt, darunter:- Lesen lokaler und globaler Variablen
- Lesen aus Arrays, Listen, Segmenten, Wörterbüchern 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)
Die meisten Go-Ausdrücke werden 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
- 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 im entsprechenden Log-Explorer ansehen.
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 sich die Logs im Log-Explorer 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 delete.