Source code for incerto.utils.logging

"""
Logging utilities for incerto.

Provides a centralized logging configuration for the library.
"""

import logging
import sys
from typing import Optional


[docs] def get_logger(name: str) -> logging.Logger: """ Get a logger instance for a module. Args: name: Logger name (typically __name__) Returns: Configured logger instance Example: >>> from incerto.utils.logging import get_logger >>> logger = get_logger(__name__) >>> logger.info("Calibrating model...") """ return logging.getLogger(f"incerto.{name}")
[docs] def setup_logging( level: int = logging.INFO, format_str: Optional[str] = None, handlers: Optional[list] = None, ) -> None: """ Configure logging for incerto. Args: level: Logging level (default: INFO) format_str: Custom format string (default: includes timestamp, level, name, message) handlers: List of handlers (default: StreamHandler to stdout) Example: >>> from incerto.utils.logging import setup_logging >>> import logging >>> setup_logging(level=logging.DEBUG) """ if format_str is None: format_str = "%(asctime)s - %(name)s - %(levelname)s - %(message)s" if handlers is None: handler = logging.StreamHandler(sys.stdout) handler.setFormatter(logging.Formatter(format_str)) handlers = [handler] # Configure root incerto logger logger = logging.getLogger("incerto") logger.setLevel(level) # Remove existing handlers to avoid duplicates logger.handlers.clear() for handler in handlers: logger.addHandler(handler) # Prevent propagation to root logger logger.propagate = False
[docs] def disable_logging() -> None: """ Disable all logging from incerto. Example: >>> from incerto.utils.logging import disable_logging >>> disable_logging() """ logging.getLogger("incerto").setLevel(logging.CRITICAL + 1)
# Default configuration setup_logging(level=logging.WARNING)