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
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)
|