Source code for quantbullet.log_config

"""
Centralized logging configuration for the package.
"""
import logging

LEVEL_MAP = {
    'DEBUG': logging.DEBUG,
    'INFO': logging.INFO,
    'WARNING': logging.WARNING,
    'ERROR': logging.ERROR,
    'CRITICAL': logging.CRITICAL
}


[docs]def setup_logger(name): """ Setup a logger with a given name. """ logger = logging.getLogger(name) if not logger.hasHandlers(): handler = logging.StreamHandler() # formatter = logging.Formatter("%(asctime)s %(name)s %(levelname)s %(message)s", # datefmt="%m-%d %H:%M:%S") formatter = logging.Formatter("%(asctime)s %(levelname)s %(message)s", datefmt="%m-%d %H:%M:%S") handler.setFormatter(formatter) logger.addHandler(handler) logger.setLevel(logging.INFO) return logger
[docs]def set_package_log_level(level='WARNING'): """ Set the log level for all loggers in the package. """ level = LEVEL_MAP.get(level.upper(), logging.WARNING) top_level_name = __name__.split('.', maxsplit=1)[0] for logger_name, logger_instance in logging.root.manager.loggerDict.items(): if logger_name.startswith(top_level_name) and\ isinstance(logger_instance, logging.Logger): logger_instance.setLevel(level)
# package logger pkg_logger = setup_logger(__name__)