Skip to main content
Observe

Logs

Read function and platform log lines for each request, from the dashboard or the CLI.

Easel captures what your functions write to the console and attaches each line to the request that produced it. Platform components add their own lines to the same request.

Read logs for a request

Open Logs, select a request, and open the Logs tab in the dock under the list. To find the request first, see Requests.

From the terminal, --expand prints each request's log lines:

easel logs --expand --since 1h
easel logs --follow --expand
easel logs --request-id <request-id> --expand

See easel logs for every option.

A request served from cache or as a static file runs no function, so it has few or no log lines. Build output lives with the deployment, not in request Logs.

Write useful logs

Use the standard console APIs. The Warning, Error, and Fatal filters in Logs, and easel logs --level, match the level of each line.

Structured JSON keeps fields searchable:

{
  "level": "info",
  "message": "Checkout completed",
  "order_id": "ord_123"
}

Don't log secrets, tokens, or connection strings. Redaction can't catch every transformed value. See Environment variables.

Capture

Log capture per invoke is bounded so logging can't keep a function running. Very chatty code can lose lines past the bound, so keep high-volume paths concise. See Observability limits.

Delivery is best-effort and never blocks your request. Don't treat Logs as an audit archive.

Next steps