import logging LOG = logging.getLogger("acm.logging") def setup_basic_logging( logger_name, logger_level = logging.ERROR, log_format = "%(asctime)s - %(name)s - %(levelname)s - %(message)s", date_format="%Y-%m-%dT%H:%M:%S%Z", default_level = logging.INFO, ): """ Initialize logging with sane defaults """ logging.basicConfig( format=log_format, datefmt=date_format, level=default_level ) configured_logger = logging.getLogger(logger_name) configured_logger.setLevel(logger_level) def update_logging_level(verbosity: int = 0, *loggers): """ Configure logging based on the requested verbosity """ if verbosity > 2: logging_level = logging.DEBUG elif verbosity > 1: logging_level = logging.INFO elif verbosity > 0: logging_level = logging.WARN elif verbosity == 0: logging_level = logging.ERROR elif verbosity < 0: logging_level = logging.CRITICAL for logger in loggers: if isinstance(logger, logging.Logger) or isinstance(logger, logging.Handler): logger.setLevel(logging_level) else: logger_instance = logging.getLogger(logger) logger_instance.setLevel(logging_level) LOG.debug("Set logging level for to %s", logging_level)