> ## Documentation Index
> Fetch the complete documentation index at: https://docs.novacula.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Node logs

> Read a node's process logs in the UI — scope per process, filter by level, search, and follow

Open a node, then select the **Logs** tab to read the output of the node's underlying processes. The panel is titled **Live logs** and refreshes automatically every few seconds; a status dot next to the title shows `connecting`, `connected`, or `error`.

Use this for quick, in-browser triage. For long-term retention, ship logs to your own store — see [Keep logs longer](#keep-logs-longer).

## Pick a process

A node can run more than one process. Several chains run more than one — Ethereum (execution + consensus), Igra (kaspad + execution), and Monad. Bitcoin and Tron run a single process.

When a node has more than one process, a **Source** selector appears in the panel header (its entries read `Source: <role>`). Pick the process you want to read:

* **Ethereum** — `el` for the execution-layer client (Geth), `cl` for the consensus-layer client (Lighthouse).
* **Igra** — `el` (igra-reth) and `kaspad`.
* **Monad** — `execution`, `consensus`, and `rpc`.
* **Single-process chains** (Bitcoin, BSC, Tron) — one source. The selector is hidden because there's nothing to switch between.

Switching the source reloads the panel with that process's lines. Logs from different processes are not interleaved.

## Filter and search

Three controls in the header narrow what you see:

* **Level** — `All levels` (default), `Debug`, `Info`, `Warn`, or `Error`. Each client writes its own level words; the platform normalizes them so Geth's `WARN`, Lighthouse's `WARN`, and Bitcoin's `warning` all match the `Warn` filter.
* **History** — how many recent lines to load: `Last 100`, `Last 200` (default), `Last 500`, or `Last 1000` lines. A larger value gives more context up front. Use the default for routine checks; raise it for incident triage.
* **Search logs** — a free-text box that filters the loaded lines to those containing your term (timestamp, level, source, and message are all searched).

## Follow, wrap, and read

* **Follow** (on by default) auto-scrolls to the newest line as the panel refreshes. Scroll up and it turns off so the view stays put; a **Jump to latest** button appears to re-pin and turn it back on.
* **Wrap** (on by default) wraps long lines instead of scrolling them horizontally. Turn it off to read wide, structured output without rewrapping.

Control and color codes that clients emit (ANSI escape sequences) are stripped before logs are stored and shown, so lines render as clean, readable text rather than raw escape bytes.

## Copy and download

* **Copy logs** puts the currently visible lines on your clipboard.
* **Download** saves them to a `.txt` file named after the node and process.

Both act on what's filtered into view, so narrow with the level filter and search first to export just the lines you care about.

## Retention

In-UI logs cover roughly the last 24 hours of activity and are meant for live troubleshooting, not archival. To keep logs longer, forward them from your own infrastructure.

### Keep logs longer

The **Connect logger** button (header) opens the **External loggers** dialog, which generates a [Grafana Alloy](https://grafana.com/docs/alloy/latest/) configuration that ships this node's logs to your [Loki](https://grafana.com/docs/loki/latest/) or any Loki-compatible collector. The snippet is pre-filled with this node's identifiers (node id, chain, network) and tailored to the node's backend.

To stand up the collector that the snippet feeds, follow the recipe for your backend — [provision on bare metal](/recipes/provision-on-bare-metal) or [provision on Kubernetes](/recipes/provision-on-kubernetes).

## Related

* [Node monitoring](/docs/nodes/monitoring) — sync progress, peers, and per-process metrics.
* [Events feed](/docs/notifications/events-feed) — lifecycle transitions and errors as structured events.
