Skip to content

logger

Centralized logging configuration for featcopilot.

get_logger(name=None)

Get a logger instance.

Args: name: Optional name for the logger. If None, returns the root featcopilot logger.

Returns: A configured logger instance.

Source code in featcopilot/utils/logger.py
def get_logger(name: str | None = None) -> logging.Logger:
    """Get a logger instance.

    Args:
        name: Optional name for the logger. If None, returns the root featcopilot logger.

    Returns:
        A configured logger instance.
    """
    if name:
        # Strip 'featcopilot.' prefix if present to avoid duplication
        if name.startswith("featcopilot."):
            name = name[len("featcopilot.") :]
        return logging.getLogger(f"featcopilot.{name}")
    return logger

set_level(level)

Set the logging level.

Args: level: Logging level (e.g., logging.DEBUG, logging.INFO, "DEBUG", "INFO")

Source code in featcopilot/utils/logger.py
def set_level(level: int | str) -> None:
    """Set the logging level.

    Args:
        level: Logging level (e.g., logging.DEBUG, logging.INFO, "DEBUG", "INFO")
    """
    if isinstance(level, str):
        level = getattr(logging, level.upper())
    logger.setLevel(level)