Superb Logger Configurator Module.

This module provides a flexible and customizable logging configuration utility. It allows setting up console and file handlers for multiple loggers with ease.

Classes:

Name Description
Configurator

Central class to configure and retrieve logger instances.

Configurator

Configurator(
    *,
    base_level: Level | int = INFO,
    console_formatter: Formatter | None = None,
    file_formatter: Formatter | None = None
)

Main class to configure and manage logger instances.

Attributes:
  • base_level (int) –

    Default logging level for all loggers.

  • console_formatter (Formatter) –

    Formatter used for console output.

  • file_formatter (Formatter) –

    Formatter used for file output.

  • loggers (dict[str, Logger]) –

    Dictionary storing already configured logger instances.

Parameters:
  • base_level (Level | int, default: INFO ) –

    Base logging level for all loggers (default is INFO).

  • console_formatter (Formatter | None, default: None ) –

    Optional formatter for console output.

  • file_formatter (Formatter | None, default: None ) –

    Optional formatter for file output.

Example
from superb_logger import Configurator, Level
config = Configurator(base_level=Level.INFO)

get_logger

get_logger(
    name: str,
    *,
    level: Level | None = None,
    to_console: bool = True,
    filepath: str | None = None,
    is_propagate: bool = False
) -> Logger

Get or create a configured logger instance.

Parameters:
  • name (str) –

    Name of the logger.

  • level (Level | None, default: None ) –

    Logging level for this specific logger.

  • to_console (bool, default: True ) –

    Whether to add a console handler.

  • filepath (str | None, default: None ) –

    Path to a file for logging output.

  • is_propagate (bool, default: False ) –

    Whether to propagate log messages to parent loggers.

Returns:
  • Logger –

    A configured Logger instance.

Example
from superb_logger import Configurator
config = Configurator()
logger = config.get_logger(name="app", to_console=True)

get_root_logger

get_root_logger() -> Logger

Retrieve the root logger configured by this instance.

Returns:
  • Logger –

    The root logger instance.

Example
from superb_logger import Configurator
config = Configurator()
root_logger = config.get_root_logger()

set_loggers

set_loggers(
    names: list[str],
    *,
    level: Level | None = None,
    to_console: bool = True
) -> None

Configure multiple loggers at once.

Parameters:
  • names (list[str]) –

    List of logger names to configure.

  • level (Level | None, default: None ) –

    Logging level for all these loggers.

  • to_console (bool, default: True ) –

    Whether to add a console handler.

Example
from superb_logger import Configurator
config = Configurator()
config.set_loggers(names=["app", "db"], level="DEBUG")