Logs schreiben und aufrufen

Auf dieser Seite werden die Logs erläutert, die für App Engine-Anwendungen verfügbar sind. Außerdem wird gezeigt, wie Logeinträge geschrieben und aufgerufen werden.

App Engine erfasst zwei Arten von Logs:

  • Anfragelog: Log der Anfragen, die an Ihre Anwendung gesendet werden. App Engine erstellt die Einträge im Anfragelog automatisch.

  • Anwendungslog: Logeinträge, die in ein unterstütztes Framework oder in eine Datei geschrieben werden, wie auf dieser Seite gezeigt.

App Engine sendet diese Logs automatisch an den Cloud Logging-Agent. Sie können die Logs in der Loganzeige, über die Befehlszeile oder programmatisch aufrufen.

Anwendungslogs schreiben

Zum Schreiben von Logeinträgen empfehlen wir die Verwendung der Cloud Logging-Clientbibliothek für Ruby. Eine Anleitung und Codebeispiele finden Sie unter Cloud Logging für Ruby einrichten.

Alternative: Strukturierte Logs in stdout und stderr schreiben

Anstelle der empfohlenen Methode können Sie auch einfache Textstrings an stdout und stderr senden. Die Strings werden im Log-Explorer, der Befehlszeile und der Cloud Logging API als Nachrichten angezeigt und sind mit dem App Engine-Dienst sowie mit der Version verknüpft, mit der sie ausgegeben wurden.

Wenn Sie diese Strings im Log-Explorer nach dem Schweregrad filtern möchten, müssen Sie sie als strukturierte Daten formatieren. Weitere Informationen dazu finden Sie unter Strukturiertes Logging.

Wenn Sie Einträge im Anwendungslog mit dem Anfragelog verknüpfen möchten, müssen Ihre strukturierten Anwendungslogeinträge die Trace-ID der Anfrage enthalten. Sie können die Trace-ID aus dem Anfrageheader X-Cloud-Trace-Context extrahieren. Schreiben Sie die ID in Ihrem strukturierten Logeintrag in ein Feld mit dem Namen logging.googleapis.com/trace. Weitere Informationen zum Header X-Cloud-Trace-Context finden Sie unter Tracing einer Anfrage erzwingen.

Die Cloud Run-Dokumentation enthält ein Beispiel für das Schreiben strukturierter Logeinträge mit einer Trace-ID. Sie können diese Methode auch in Ihren App Engine-Anwendungen nutzen.

Logs ansehen

Sie können Ihre Anwendungs- und Anfragelogs mit dem Log-Explorer aufrufen:

  1. Rufen Sie in der Google Cloud Console den Log-Explorer auf.

    Zu „Log-Explorer“

  2. Wählen Sie oben auf der Seite ein vorhandenes Google Cloud-Projekt aus.

  3. Wählen Sie im Drop-down-Menü GAE-Anwendung als Ressourcentyp aus.

  4. So können Sie feststellen, welche Einträge von Anwendungslogs mit Einträgen der Anfragelogs übereinstimmen:

    1. Wählen Sie in den Filtermenüs das Log httpRequest.requestUrl aus.

    2. Erweitern Sie einen Anfragelogeintrag. Die Anwendungslogs, die sich auf diese Anfrage beziehen, werden verschachtelt unter dem Anfragelogeintrag angezeigt.

    Wenn Sie einfache Texteinträge an die Standardausgabe senden, können Sie die Anwendungseinträge in der Loganzeige nicht nach dem Schweregrad filtern. Außerdem lässt sich in diesem Fall nicht feststellen, welche Anwendungslogs bestimmten Anfragen entsprechen. Sie können auch andere Filtertypen im Log-Explorer verwenden, z. B. Text und Zeitstempel.

Der Log-Explorer lässt sich nach App Engine-Dienst und -Version sowie nach anderen Kriterien filtern. Sie können in den Logs auch nach bestimmten Einträgen suchen. Weitere Informationen finden Sie unter Log-Explorer verwenden.

Logs über die Befehlszeile aufrufen

Über die Befehlszeile können Sie App Engine-Logs mit diesem Befehl aufrufen:

gcloud app logs tail

Weitere Informationen finden Sie unter gcloud app logs tail.

Logs programmatisch lesen

Wenn Sie die Logs programmatisch lesen möchten, können Sie eine der folgenden Methoden verwenden:

Preise, Kontingente und Aufbewahrungsrichtlinie für Logs

Informationen zu Preisen, die sowohl für Anfrage- als auch für Anwendungslogs gelten, finden Sie unter Preise für Cloud Logging.

Informationen zur Aufbewahrungsrichtlinie für Logs und zur maximalen Größe von Logeinträgen erhalten Sie unter Kontingente und Limits. Zur längerfristigen Speicherung Ihrer Logs können Sie diese nach Cloud Storage exportieren. Außerdem besteht die Möglichkeit, Logs zur weiteren Verarbeitung nach BigQuery und Pub/Sub zu exportieren.

Nutzung von Logressourcen verwalten

Sie können den Umfang der Logging-Aktivität von Ihren Anwendungslogs aus steuern. Dazu schreiben Sie die gewünschte Anzahl an Einträgen über den Code Ihrer Anwendung. Anfragelogs werden automatisch erstellt. Zur Verwaltung der Anzahl der Anfragelogeinträge, die mit Ihrer Anwendung verknüpft sind, verwenden Sie das Feature Logausschluss von Cloud Logging.

Bekannte Probleme

Manchmal sind Anwendungslogeinträge nicht mit dem Anfragelog verknüpft. Dies ist dann der Fall, wenn die Anwendung zum ersten Mal eine Anfrage erhält und immer dann, wenn App Engine Statusmeldungen in das Anwendungslog schreibt. Weitere Informationen finden Sie unter https://issuetracker.google.com/issues/138365527.