Skip to content

Pluggable host-side logger interface #1434

Closed
1 of 1 issue completed
Closed

Description

@shi-eric

Description

Add a pluggable logger interface so frameworks integrating Warp can route its host-side diagnostic output through their own logging machinery instead of print() to stdout.

Proposed public surface:

  • wp.Logger — runtime-checkable Protocol with debug, info, warning, error methods. Any object satisfying the interface works.
  • wp.set_logger(logger) / wp.get_logger() — install or retrieve the active logger.
  • wp.ScopedLogger(logger) — context manager for temporary overrides (mirrors wp.ScopedAllocator).
  • wp.utils.LoggerKit — adapter for Omniverse Kit hosts (routes through Carbonite).

Pass None to set_logger() to restore Warp's built-in default. The default implementation is kept internal: only the protocol and entry points above are public, mirroring how the default mempool allocator is internal while the wp.Allocator protocol and wp.utils.AllocatorRmm are public.

Context

Today Warp emits host-side diagnostics through print() and warnings.warn() calls scattered across the codebase, with no extension point. Concrete needs:

  • Omniverse Kit integrations need Warp messages to appear in Kit's log viewer with proper severity and source attribution, rather than going to stdout where Kit doesn't see them.
  • Anything that wants to capture or redirect Warp's diagnostic output (forwarding to stdlib logging, capturing in tests, framing per-rank in distributed jobs) currently has to scrape stdout.

Complements #1315 (which scopes the underlying warp.utils.warn() filter-override bug). This issue covers the extensibility surface that allows non-default loggers to exist in the first place.

Activity

  1. self-assigned this
    on May 7, 2026
  2. added theissue type on May 7, 2026
  3. added this to the 1.14.0 milestone on May 7, 2026
  4. shi-eric commented on May 14, 2026

    @shi-eric
    ContributorAuthor

    This has been addressed by 110917b

    Warp now exposes a pluggable host-side logging interface through wp.Logger, wp.set_logger(), wp.get_logger(), and wp.ScopedLogger. The implementation also adds wp.config.log_level and public log-level constants so applications can control Warp diagnostic verbosity while routing messages through their own logging systems.

    Host-side warnings, deprecation messages, launch diagnostics, initialization output, and related debug paths have been migrated onto the new logging path, with tests covering custom loggers, scoped logger overrides, warning filtering, log-level gating, and legacy verbose / quiet compatibility.

    Warp does not ship an Omniverse Kit-specific LoggerKit adapter; application-specific adapters are intended to live in the host integration layer and can be installed with wp.set_logger().

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

feature requestRequest for something to be added

Type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions