Tooling for managing asset compression, storage, and retrieval
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

46 lines
1.3 KiB

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)