RootCX
Docs
Pricing
RootCX/RootCXSource Available
Introduction
What is RootCX?Getting StartedHow it Works
Build
ApplicationAI AgentIntegrationDeploying
Platform
CoreAuthenticationRBACData APISecret VaultJob QueueScheduled Jobs (Crons)Audit LogReal-time LogsChannels
Developers
React SDKBackend & RPCManifest ReferenceREST APICLIClaude CodeSelf-Hosting
DocsPlatformReal-time Logs

Real-time Logs

The Core captures stdout and stderr from backend processes and broadcasts them via an in-memory SSE channel. Ephemeral: logs are not persisted to disk.

Log Levels

Level Source
stdout console.log() from the backend process.
stderr console.error() from the backend process.
system Core lifecycle events (start, stop, restart, crash).

Using Studio

The Console panel shows live logs from all running backends. Logs stream in real time with color-coded levels. Use the Command Palette to clear the console.

Using Code

SSE Endpoint

GET /api/v1/apps/{appId}/logs
Authorization: Bearer <token>

Streams text/event-stream with JSON payloads:

{ "level": "stdout", "message": "RPC call received" }
{ "level": "stderr", "message": "Failed to connect" }
{ "level": "system", "message": "Worker restarted" }

Logging from Your Backend

// Standard output → broadcasts as [stdout]
console.log("Processing:", method);

// Standard error → broadcasts as [stderr]
console.error("Connection failed");

// Structured IPC log with custom level
process.stdout.write(JSON.stringify({
  type: "log", level: "info", message: "Event occurred"
}) + "\n");

Client Example

const res = await fetch(`/api/v1/apps/myapp/logs`, {
  headers: { Authorization: `Bearer ${token}` },
});

const reader = res.body!.getReader();
const decoder = new TextDecoder();
while (true) {
  const { done, value } = await reader.read();
  if (done) break;
  console.log(decoder.decode(value));
}
PreviousAudit LogNextChannels

On this page

Log Levels
Using Studio
Using Code