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 logsCmd+↓
- Jump to bottom and enable pinningPageUp
/PageDown
- Scroll by page↑
/↓
in search bar - Open search historyEnter
in search bar - Save current search to historyEscape
- 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
- Start with broad terms like
error
orwarning
- Narrow down with additional terms:
error database
- Use exclusions to filter noise:
error -"connection reset"
- Mark important lines as you find them
Monitoring Real-Time Activity
- Keep streaming and pinning enabled
- Use broad searches to catch categories of events
- Watch for patterns in timing and frequency
- Mark unusual events for later analysis
Historical Analysis
- Disable streaming to freeze the current view
- Use specific searches to find event sequences
- Mark key events to build a timeline
- Copy marked lines to external tools if needed
Performance Debugging
- Search for timing-related terms:
timeout
,slow
,ms
,seconds
- Use regex to find specific patterns:
/\d+ms/
for millisecond timings - Look at source patterns:
$source:stderr
for error streams - 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.