Source code for pudl.logging_helpers

"""Configure logging for the PUDL package."""

import logging

import coloredlogs


[docs] def get_logger(name: str): """Helper function to append 'catalystcoop' to logger name and return logger.""" return logging.getLogger(f"catalystcoop.{name}")
[docs] def configure_root_logger(logfile: str | None = None, loglevel: str = "INFO"): """Configure the root catalystcoop logger. Args: logfile: Path to logfile or None. loglevel: Level of detail at which to log, by default INFO. """ # Set numba log-level to warning to suppress excessive logs numba_logger = logging.getLogger("numba") numba_logger.setLevel(logging.WARNING) logger = logging.getLogger("catalystcoop") log_format = "%(asctime)s [%(levelname)8s] %(name)s:%(lineno)s %(message)s" coloredlogs.install(fmt=log_format, level=loglevel, logger=logger) logger.addHandler(logging.NullHandler()) if logfile is not None: file_logger = logging.FileHandler(logfile) file_logger.setFormatter(logging.Formatter(log_format)) logger.addHandler(file_logger)