Skip to main content

Logs

The Logs page lets you inspect, search, and filter the system's log output in real time. Useful for debugging issues, monitoring activity, and reviewing setup history.

http://<raspberry-pi-ip>:3000/logs

Tabs

The main security camera application log. Shows API requests, recording events, sensor triggers, Bluetooth/WiFi scanning, presence detection, and system messages.

Source examples: stream, sensor.mgr, bt.scan, presence, api, system.health, wifi, settings, sse


Searching and filtering

Type in the search bar to filter instantly - no need to press Enter. Matches against message text, source name, and timestamp. Filtering happens in the browser against the 2000 most recent entries already in memory, so results appear with zero latency.

Keyboard shortcut

Press / from anywhere on the page to jump to the search bar.

Level filter

LevelColorWhat it captures
ErrorRedConnection failures, recording problems, hardware issues
WarnAmberNon-critical issues like timeouts or retries
InfoGreenNormal operations - recording start/stop, device detection
DebugGrayVerbose diagnostics, only useful for investigating specific problems

The level filter fetches a fresh set of up to 2000 matching entries from the server. When no filters are active, each button shows a count badge.

Source filter

Filters by the subsystem that produced the log entry. Available when multiple sources exist in the loaded data. Applied server-side to reduce payload size.

SourceWhat it logs
streamCamera capture, MJPEG, recording
stream.mtxMediaMTX configuration
sensor.mgrSensor lifecycle
sensor.*Individual sensor drivers
bt.scanBluetooth scanning
presenceDevice presence monitoring
apiHTTP requests/responses
system.healthCPU, temp, RAM monitoring
system.storageDisk space, auto-delete
wifiWiFi/AP scanning
settingsSettings reads/writes
eventsActivity event log
sseServer-sent events

Keyboard shortcuts

When the search bar is not focused, these shortcuts are available on the Application and Streaming tabs:

KeyAction
j / ArrowDownMove focus down one row
k / ArrowUpMove focus up one row
gJump to first entry
GJump to last entry
/Focus the search bar
eQuick-filter to Error
wQuick-filter to Warning
iQuick-filter to Info
dQuick-filter to Debug
aClear level filter (show All)
EscapeClear row focus / blur search bar

The focused row is highlighted with a blue left-edge accent. Click a row to focus it with the mouse.


Live updates

When Auto-refresh is enabled (default), the page polls every 5 seconds. The status bar shows:

IndicatorMeaning
Green pulsing LIVEFeed is actively updating
+N badgeN new entries arrived in the last refresh (fades after 3 seconds)
Battery saver

Auto-refresh pauses automatically when the browser tab is hidden, avoiding unnecessary load on the Pi.


Virtual scrolling

The log table uses virtual scrolling on desktop - only the ~25 visible rows are in the DOM at any time, regardless of how many entries exist (up to 2000). Scrolling through the full log is instant with no pagination.

On mobile, entries show in a stacked card layout (level badge + timestamp on one line, message below) limited to 200 entries in a scrollable container.


Setup logs

The Setup tab groups saved script output by category:

CategoryColorWhat it contains
InstallBlueInitial system setup output
UpdateGreenSoftware update output
AP SetupAmberAccess point configuration output
Bluetooth PairingVioletDevice pairing session output

Click a category to expand its file list. Click a file to view its contents. Filenames contain the date and time the script ran (e.g. 2026-04-01_09-51-07.log). A header bar shows the currently open file.


Source colors

Each log source name displays in a unique color derived from its name via a hash function. This makes it easy to spot clusters of activity from the same subsystem at a glance - a burst of blue bt.scan entries, a cluster of green stream entries - without reading the source column text.


Downloading

The Download button (top right, icon-only on mobile) exports:

TabWhat downloads
Application / StreamingAll loaded entries as .log text: timestamp [LEVEL] source: message
SetupThe currently selected script log file as-is
Bug reports

When reporting a bug, download the Application log filtered to Error level and attach it. This gives the most relevant diagnostics without noise.