Log Viewer

The Logs tab is where you monitor and analyze your application's output in real-time. As you type in the search box, logs filter instantly — no need to run commands or refresh. Start simple by typing a word to filter, then refine with AND/OR operators, regular expressions, fuzzy matching, or field-specific searches when you need them. New logs stream automatically as your application runs, and your search updates live to show matches. Everything happens in one place: view logs, search, mark important lines, and copy results without switching between windows or tools.

Getting Started

When you select a running application from the app list, the Log Viewer automatically opens and begins displaying log output. The interface is designed to be immediately useful - logs start streaming right away, and you can begin searching or filtering without any setup.

Core Features

Real-Time Log Streaming

The Log Viewer automatically captures and displays log output as it happens. You'll see logs from multiple sources:

  • stdout - Standard output from your application
  • stderr - Error output (displayed in red for easy identification)
  • outrig - Internal Outrig messages (displayed in accent color)
  • Custom sources - Any other log sources your application uses

The streaming is intelligent - when your application is running, new logs appear instantly. When it stops, the viewer preserves all captured logs for analysis.

Pin to Bottom

By default, the Log Viewer "pins" to the bottom, automatically scrolling to show the newest logs as they arrive. This keeps you focused on the latest activity without manual scrolling.

The pin button in the top-right shows your current state:

  • Pinned (filled arrow down circle): Automatically follows new logs
  • Not Pinned (outline arrow down): Stays at your current scroll position

You can toggle this behavior by clicking the pin button or using Cmd+↓ to jump to the bottom and enable pinning.

Powerful Search and Filtering

The search bar at the top provides instant filtering of your logs. As you type, results update immediately - no need to press Enter or wait for processing.

Basic Search

error          # Find logs containing "error"
timeout        # Find logs containing "timeout"
error timeout  # Find logs containing both "error" AND "timeout"

Advanced Search Operators

The Log Viewer supports the full range of Outrig's search operators:

"exact phrase"     # Exact phrase matching
'CaseSensitive'    # Case-sensitive search
~fuzzy             # Fuzzy matching for typos
/regex.*pattern/   # Regular expressions
-exclude           # Exclude terms
error | warning    # OR operator
(error | warn) db  # Grouping with parentheses

Field-Specific Search

Target specific parts of log entries:

$source:stderr     # Only stderr logs
$source:stdout     # Only stdout logs
$linenum:42        # Specific line number
$msg:database      # Search only the message content

Search History

The Log Viewer remembers your search terms and makes them easily accessible:

  • Press or arrow keys in the search bar to open search history
  • Navigate through previous searches with arrow keys
  • Press Enter to select a search from history
  • Remove unwanted searches with the X button
  • Search history is preserved per application and tab

Search Tips

Click the ? button next to the search bar to open an interactive guide to search operators. This provides quick reference and examples without leaving the Log Viewer.

Log Display Options

The Log Viewer provides several display options accessible through the settings:

Timestamps

  • Show/Hide: Toggle timestamp display
  • Format: Choose between absolute time (HH:MM:SS) or relative time (+MM:SS from app start)
  • Milliseconds: Include or exclude millisecond precision

Sources

  • Show/Hide: Toggle the source column that shows where each log came from
  • Sources are color-coded and truncated to 6 characters for compact display

Line Numbers

  • Show/Hide: Toggle line number display
  • Line numbers help with navigation and referencing specific log entries
  • Width automatically adjusts based on total log count

Line Marking and Selection

Click on any line number to mark that log line. Marked lines are highlighted and tracked separately from your current view:

  • Visual Indicator: Marked lines show with a bullet (•) and accent background
  • Persistent: Marked lines stay marked as you scroll and search
  • Counter: A badge in the bottom-right shows how many lines are marked
  • Copy: Copy all marked lines to clipboard with one click
  • Clear: Remove all marks with the X button

This is perfect for collecting specific log entries across different time periods or search results.

Navigation and Controls

Keyboard Shortcuts

The Log Viewer supports efficient keyboard navigation:

  • Cmd+↑ - Jump to top of logs
  • Cmd+↓ - Jump to bottom and enable pinning
  • PageUp / PageDown - Scroll by page
  • / in search bar - Open search history
  • Enter in search bar - Save current search to history
  • Escape - Clear search or close search history

Streaming Controls

Control how the Log Viewer handles new log data:

Streaming Toggle

The streaming button (wifi icon) controls whether new logs are captured:

  • On (solid wifi): New logs appear as they're generated
  • Off (wifi with slash): Stops capturing new logs, freezes current view

Refresh

The refresh button clears the current log cache and reloads from the server. This is useful when you want to start fresh or if you suspect logs might be out of sync.

Status Information

The Log Viewer provides helpful status information:

Log Counts

Next to the search bar, you'll see counts in the format filtered/searched+:

  • Filtered: Number of logs matching your current search
  • Searched: Number of logs that have been searched through
  • +: Indicates more logs exist beyond what's been searched

Hover over these numbers for detailed information about log limits and storage.

Streaming Status Bar

When your application is running, a status bar appears at the bottom showing:

  • Left side: Current streaming state with toggle
  • Right side: Pin state with toggle
  • This provides quick access to the most common controls

Advanced Features

Performance Optimization

The Log Viewer is designed to handle large volumes of logs efficiently:

  • Virtual Scrolling: Only renders visible log lines for smooth performance
  • Lazy Loading: Loads log pages on demand as you scroll
  • Smart Caching: Keeps recently viewed pages in memory
  • Automatic Trimming: Maintains a rolling window of recent logs (typically 10,000 lines)

Empty States

The Log Viewer provides helpful guidance when there's nothing to show:

  • No logs: "no log lines" when the application hasn't generated any output
  • No matches: "no matching lines" when your search doesn't match anything
  • Loading: Smooth loading states during data fetching

Error Handling

Search errors are handled gracefully:

  • Invalid regex: Red squiggly underlines with helpful error messages
  • Syntax errors: Highlighted problem areas with tooltips
  • Graceful degradation: Invalid parts of searches are ignored while valid parts continue working

Tips for Effective Log Analysis

Finding Specific Issues

  1. Start with broad terms like error or warning
  2. Narrow down with additional terms: error database
  3. Use exclusions to filter noise: error -"connection reset"
  4. Mark important lines as you find them

Monitoring Real-Time Activity

  1. Keep streaming and pinning enabled
  2. Use broad searches to catch categories of events
  3. Watch for patterns in timing and frequency
  4. Mark unusual events for later analysis

Historical Analysis

  1. Disable streaming to freeze the current view
  2. Use specific searches to find event sequences
  3. Mark key events to build a timeline
  4. Copy marked lines to external tools if needed

Performance Debugging

  1. Search for timing-related terms: timeout, slow, ms, seconds
  2. Use regex to find specific patterns: /\d+ms/ for millisecond timings
  3. Look at source patterns: $source:stderr for error streams
  4. Mark performance events to see patterns over time

The Log Viewer is designed to adapt to your workflow - whether you're debugging a specific issue, monitoring ongoing activity, or analyzing historical patterns, its combination of real-time streaming and powerful search makes it easy to find exactly what you need.