Console
Output console displaying backend Python print statements, errors, and system messages in real-time
🚧
Under Construction
This documentation is currently being developed and will be available soon.
Overview
The Console panel is a real-time output console that displays backend Python print statements, errors, warnings, and system messages. Located on the right side in a tab with Properties, Settings, and Results panels, it provides essential debug output and backend monitoring via WebSocket-based streaming with minimal latency.
Message Types
Info
General output (white/black text)
Warning
Warning messages (yellow)
Error
Error messages (red)
Debug
Debug information (gray)
Success
Success messages (green)
Message Format
[HH:MM:SS] [Type] Message content
[14:23:01] [Server] Client connected
[14:23:02] [Camera] Rendering view...
[14:23:03] [Error] Failed to load mesh
Console Output
Python Integration
- • print(): Captured and forwarded
- • logger: Structured logging support
- • traceback: Full error stack traces
- • Custom: Tagged output with prefixes
Real-time Streaming
- • WebSocket-based forwarding
- • No polling required
- • Minimal latency
- • Buffered for performance
Interactive Features
Filtering
- • Search Box: Filter by text
- • Type Filter: Show/hide message types
- • Regex Support: Pattern matching
- • Clear Filter: Reset button
Controls
- • Clear: Empty console
- • Pause: Stop auto-scroll
- • Copy: Copy selected text
- • Export: Save to file
Selection
- • Click: Select single line
- • Shift+Click: Select range
- • Ctrl+A: Select all
- • Ctrl+C: Copy to clipboard
Backend Integration
Console API
from rfdt import server
# Logging methods
server.console.log("Processing complete") # Info message
server.console.warn("Low memory warning") # Warning message
server.console.error("Failed to load data") # Error message
# Custom tagged output
print("[Camera] Starting render...")
print(f"[Camera] Image size: {width}x{height}")
print("[Camera] Render complete")Message Protocol
{
"type": "console_output",
"level": "info",
"message": "Processing complete",
"timestamp": "2024-01-20T14:23:01Z",
"source": "Camera"
}Logging Patterns
Tagged Output
# In backend component
print("[Camera] Starting render...")
print(f"[Camera] Image size: {width}x{height}")
print("[Camera] Render complete")Error Reporting
import traceback
try:
result = process_data()
except Exception as e:
server.console.error(f"Processing failed: {e}")
traceback.print_exc() # Full stack traceDebug Information
if verbose:
print(f"[Debug] Object count: {len(objects)}")
print(f"[Debug] Memory usage: {memory_mb}MB")Visual Elements
- •Timestamps: Optional time display for each message
- •Color Coding: Messages colored by type (info, warning, error, etc.)
- •Line Numbers: Optional line numbering
- •Word Wrap: Toggle for long lines
- •Monospace Font: Code-friendly display
Performance
Optimization
- • Line Limit: Max 1000 lines (configurable)
- • Virtual Scrolling: Render visible only
- • Batch Updates: Group rapid messages
- • Throttling: Limit update frequency
Memory Management
- • Circular Buffer: Old messages removed
- • Lazy Rendering: On-demand display
- • Text Compression: For storage
Keyboard Shortcuts
Ctrl + LClear console
Ctrl + FFocus search
Ctrl + CCopy selection
Ctrl + ASelect all
PageUpScroll up
PageDownScroll down
HomeGo to top
EndGo to bottom
Best Practices
1.
Tagging: Use consistent prefixes for component identification
2.
Levels: Use appropriate message types (info, warn, error)
3.
Clarity: Write clear, concise messages
4.
Performance: Avoid excessive logging in tight loops
5.
Security: Never log sensitive data (passwords, tokens, etc.)
Troubleshooting
| Issue | Solution |
|---|---|
| No output | Check WebSocket connection status |
| Missing messages | Verify console capture is active |
| Performance lag | Reduce max lines or clear console |
| Text cutoff | Enable word wrap in settings |