Skip to main content
Logging provides developers with visibility into process outputs within sandboxes. You can retrieve logs either in batch or streaming.
Complete code examples demonstrating all operations are available on Blaxel’s GitHub: in TypeScript, in Python, and in Go.
The Blaxel SDK requires two environment variables to authenticate:You can create an API key from the Blaxel console. Your workspace name is visible in the URL when you log in to the console (e.g. app.blaxel.ai/{workspace}).Set them as environment variables or add them to a .env file at the root of your project:
The Blaxel SDK does not accept credentials as constructor arguments. Credentials must come from environment variables, a .env file, or a local CLI login session (see below).When developing locally, you can also log in to your workspace with Blaxel CLI (as shown above). This allows you to run Blaxel SDK functions that will automatically connect to your workspace without additional setup. When you deploy on Blaxel, authentication is handled automatically — no environment variables needed.

In batch

Retrieve from the execution object

Logs for a process are available in the process execution object if the process is started with the waitForCompletion: true / "wait_for_completion": True parameter. Both standard output (stdout) and standard error (stderr) are surfaced:
Process execution logs are also visible in the Blaxel Console. Refer to the Logs section of the sandbox detail page, as shown below: process logs

Retrieve from a completed process name or ID

Retrieve logs for a specific process (using either its name or process ID) after it has completed execution. By default, this retrieves standard output (stdout) only:
To retrieve standard error (stderr):
To retrieve both stderr and stdout:

Streaming

Retrieve via a callback function

The callback handlers receive log entries in real-time as they’re generated by the process:
  • onLog/on_log: Receives complete log objects with additional metadata
This method ensures you get a full view, as it first backfills with all past logs before beginning the real-time stream. This approach is ideal for long-running processes where you need to monitor progress or respond to specific log events during execution.

Retrieve from a process name or ID

Stream logs for a specific process (using either its name or process ID):
Last modified on May 1, 2026