When a request is sent to your application running in App Engine, request and response details are logged automatically, and can be viewed in the Google Cloud Platform Console Stackdriver Logs Viewer.The request and application logs for your app are collected by a Stackdriver Logging agent. See Quota Policy for the logs retention policy and for the maximum size of log entries. If you want to store your logs for a longer period, you can export your logs to Cloud Storage. You can also export your logs to BigQuery and Pub/Sub for further processing.
For a list of available logs you can use, see App Engine flexible logs.
Writing application logs
When your application handles a request, it can write its own logging messages
stderr. Write your application logs using
stdout for output
stderr for errors. These files are automatically collected and can be
viewed in the Logs Viewer. Note that this does not provide log levels that you
can use for filtering in the Logs Viewer; however, the Logs Viewer does provide
other filtering, such as text, timestamp, etc. Only the most recent entries in
the Logs Viewer are retained in order to limit their size.
Viewing application logs
You can view your application logs using the Logs Viewer:
Go to the Stackdriver > Logging page in the GCP Console:
Select an existing GCP project at the top of the page.
From the drop-down menus, select GAE Application as your resource type to see your App Engine logs.
You can use the drop-down menus and other components of the Logs Viewer to filter or search the logs for relevant entries. See Logs Viewer filter interfaces for more details.
Filtering application logs
To filter log entries by label or text search in the Logs Viewer, see Basic Logs Filters.
To write advanced logs filters to further specify a set of log entries, see Advanced Logs Filters.
Viewing related request log entries
In the Logs Viewer, log entries correlated by the same
trace can be viewed in
a "parent-child" format.
Following are instructions for correlating log entries:
Decide which app logs you want to correlate with your
requestlogs. Note that, for this correlation to work, you must choose app logs with a type that is not the same as the
In your application code, look for the
X-Cloud-Trace-ContextHTTP header of incoming requests. Extract the trace identifier from the header. For details, see Stackdriver Trace support.
traceidentifier in the LogEntry
tracefield of your app log entries. The expected format is
Once you have correlated the log entries, following are instructions for viewing correlated log entries:
Open your App Engine logs in the Logs Viewer; for details, see Viewing application logs.
requestlog by clicking the small black triangle to the left of the log entry. You see your
requestand app logs displayed in a nested format.
Note that there is no inherent parent-child relationship between logs. For example, if the correlated logs have the log types
app, then in the Logs Viewer, if you open an
nginx.requestlog with many correlated
applogs display underneath. If you open an
applog that correlates to one
nginx.requestlog displays underneath that
- The highest
severityfrom the "child" log entries does not automatically apply to the top-level entry. If that behavior is desired, manually set the highest
severityin the top-level entry.
- Set the
httpRequest.requestUrlfield for the top-level log.
Reading logs via API
There is no API for reading App Engine logs created in the flexible environment.