---
title: Logging
description: Where run logs live — the real-time console, the Logs page, and what each entry records.
pageType: reference
---

import { Callout } from 'fumadocs-ui/components/callout'
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
import { Image } from '@/components/ui/image'

Every workflow run is logged. There are two places to read them: the **Console** for the run you're watching, and the **Logs page** for everything.

## Real-time Console

During manual or chat runs, the Console panel in the editor shows each block as it runs — active-block highlighting, outputs as they complete, per-block timing, and success/error status.

<div className="flex justify-center">
  <Image
    src="/static/logs/console.png"
    alt="Real-time Console Panel"
    width={400}
    height={300}
    className="my-6"
  />
</div>

## Logs page

Every run from every trigger — manual, API, chat, schedule, webhook — lands on the Logs page, with filtering by time range, status, trigger type, folder, and workflow, full-text search, and a **Live mode** that streams new entries in as they're recorded.

<div className="flex justify-center">
  <Image
    src="/static/logs/logs.png"
    alt="Logs Page"
    width={600}
    height={400}
    className="my-6"
  />
</div>

## Log details

Click any entry to open its sidebar: the run's timeline (start/end, total duration, per-block timing) and each block's data flow.

<div className="flex justify-center">
  <Image
    src="/static/logs/logs-sidebar.png"
    alt="Logs Sidebar Details"
    width={600}
    height={400}
    className="my-6"
  />
</div>

<Tabs items={['Output', 'Input']}>
  <Tab>
    The block's result — JSON-formatted structured data, markdown rendering for AI content, and a copy button.
  </Tab>
  <Tab>
    What the block received — resolved variable values, referenced outputs, and environment variables. API keys are automatically redacted.
  </Tab>
</Tabs>

## Workflow snapshots

**View Snapshot** opens a frozen copy of the workflow exactly as it was at run time — structure, block states, connections — and each block is clickable to its inputs and outputs. This is how you debug a run of a workflow you've since changed.

<div className="flex justify-center">
  <Image
    src="/static/logs/logs-frozen-canvas.png"
    alt="Workflow Snapshot"
    width={600}
    height={400}
    className="my-6"
  />
</div>

<Callout type="info">
Snapshots exist for runs after the enhanced logging system was introduced. Older migrated logs show "Logged State Not Found".
</Callout>

## Retention

- **Free**: 7 days — logs are archived to cloud storage, then deleted.
- **Pro / Team / Enterprise**: retained indefinitely.

## Next

- [Alerts](/logs-debugging/alerts) for notifications on failures and slow runs
- [Cost calculation](/platform/costs) for what each run costs
- [External API](/api-reference/getting-started) for programmatic log access

import { FAQ } from '@/components/ui/faq'

<FAQ items={[
  { question: "How long are run logs retained?", answer: "Free plans retain logs for 7 days — after that, logs are archived to cloud storage and deleted from the database. Pro, Team, and Enterprise plans retain logs indefinitely with no automatic cleanup." },
  { question: "What data is captured in each run log?", answer: "Each log entry includes the run ID, workflow ID, trigger type, start and end timestamps, total duration in milliseconds, cost breakdown (total cost, token counts, and per-model breakdowns), run data with trace spans, final output, and any associated files. The log details sidebar lets you inspect block-level inputs and outputs." },
  { question: "Are API keys visible in the logs?", answer: "No. API keys and credentials are automatically redacted in the log input tab for security. You can safely inspect block inputs without exposing sensitive values." },
  { question: "What is a workflow snapshot?", answer: "A frozen copy of the workflow's structure (blocks, connections, and configuration) captured at run time, so you can see the exact state behind a particular run — useful for debugging workflows that have been modified since." },
  { question: "Can I access logs programmatically?", answer: "Yes. The External API provides endpoints to query logs with filtering by workflow, time range, trigger type, duration, cost, and model. You can also set up webhook, email, or Slack notifications for real-time alerts when runs complete." },
  { question: "What does Live mode do on the Logs page?", answer: "It refreshes the Logs page in real time so new entries appear as they are recorded — useful during deployments or when monitoring active workflows." },
]} />
