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 trace

Debug 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

IssueSolution
No outputCheck WebSocket connection status
Missing messagesVerify console capture is active
Performance lagReduce max lines or clear console
Text cutoffEnable word wrap in settings