Skip to content

Logging mode can't be changed by accessor function #56

@eclectocrat

Description

@eclectocrat

Because logger instances are created as global variables and not updated later, you can end up calling logging_config.set_mode(...) to absolutely no effect.

For example:

import loguru, sys
from fastapi_websocket_rpc.logger import logging_config, LoggingModes, get_logger

logger = loguru.logger

# Enable fastapi_websocket_rpc logging with loguru
try:
    logging_config.set_mode(LoggingModes.LOGURU)
    logger.info("🔍 FastAPI WebSocket RPC logging enabled (using loguru)")
    web_rpc_logger = get_logger("RPC_CHANNEL")
    web_rpc_logger.remove()
    web_rpc_logger.add(
        sys.stderr,
        level="DEBUG",
        format="<level>{level: <8}</level> | <green>{name}</green>:<red>{function}</red>:<red>{line}</red> - <level>{message}</level>",
    )
    print("WEB_RPC_LOGGER", web_rpc_logger, type(web_rpc_logger))
    web_rpc_logger.debug("🔍 fastapi_websocket_rpc logger configured")
except ImportError:
    logger.warning("Could not import fastapi_websocket_rpc logging config")

This code will not change the already created logger in rpc_channel.py.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions