Skip to content

Logging

smac.utils.logging #

get_logger #

get_logger(logger_name: str) -> Logger

Get the logger by name.

Source code in smac/utils/logging.py
def get_logger(logger_name: str) -> logging.Logger:
    """Get the logger by name."""
    logger = logging.getLogger(logger_name)
    return logger

setup_logging #

setup_logging(
    level: int | Path | Literal[False] | None = False,
) -> None

Sets up the logging configuration for all modules.

Parameters#

level : int | Path | Literal[False] | None, defaults to None An integer representing the logging level. An custom logging configuration can be used when passing a path. If False, no logging setup is performed.

Source code in smac/utils/logging.py
def setup_logging(
    level: int | Path | Literal[False] | None = False,
) -> None:
    """Sets up the logging configuration for all modules.

    Parameters
    ----------
    level : int | Path | Literal[False] | None, defaults to None
        An integer representing the logging level. An custom logging configuration can be used when passing a path.
        If False, no logging setup is performed.
    """
    if level is False:
        return

    if isinstance(level, Path):
        log_filename = level
    else:
        path = Path() / smac.__file__
        log_filename = path.parent / "logging.yml"

    with (log_filename).open("r") as stream:
        config = yaml.safe_load(stream)

    if isinstance(level, int):
        config["root"]["level"] = level
        config["handlers"]["console"]["level"] = level

    logging.config.dictConfig(config)