Logger

Forward remote logging records to local Python logging handlers. See Concepts for the callback thread and handler restrictions.

class rmote.tools.logger.Logger[source]

Bases: Tool

Control logging on the remote side and forward records to the local process.

Log records emitted on the remote side are forwarded over the protocol channel and appear locally under the rmote.remote.<name> logger hierarchy.

Level names are case-insensitive. Restore the original level after this local example so running the documentation does not change application logging:

>>> original_level = logging.getLogger().level
>>> try:
...     Logger.set_log_level("error")
...     print(logging.getLogger().level == logging.ERROR)
... finally:
...     logging.getLogger().setLevel(original_level)
True
>>> Logger.log("invalid", "message")
Traceback (most recent call last):
    ...
ValueError: Invalid log level: invalid
classmethod log(level, message, *args)[source]

Emit a log record on the remote side.

The record is forwarded to the local logging system via the protocol’s LOG packet and appears under the rmote.remote.<name> logger.

Parameters:
  • level (Text) – Log level name (e.g. "INFO", "DEBUG").

  • message (Text) – Log message format string (%-style).

  • *args (Any) – Arguments merged into message.

Raises:

ValueError – If level is not a recognised level name.

Return type:

None

classmethod set_log_level(level)[source]

Set the root logger level on the remote side.

Parameters:

level (Text) – One of "NOTSET", "DEBUG", "INFO", "WARNING", "ERROR", or "CRITICAL" (case-insensitive).

Raises:

ValueError – If level is not a recognised level name.

Return type:

None