''' utils ===== Handy functions for API key sample app ''' import logging from logging.config import dictConfig __all__ = [ 'log' ] def log(msg, level=0): ''' Logs a message to the console, with optional level paramater Args: - msg (str): message to send to console - level (int): log level; 0 for info, 1 for error (default = 0) ''' red = '\033[91m' endc = '\033[0m' # configure the logging module cfg = { 'version': 1, 'disable_existing_loggers': False, 'formatters': { 'stdout': { 'format': '[%(levelname)s]: %(asctime)s - %(message)s', 'datefmt': '%x %X' }, 'stderr': { 'format': red + '[%(levelname)s]: %(asctime)s - %(message)s' + endc, 'datefmt': '%x %X' } }, 'handlers': { 'stdout': { 'class': 'logging.StreamHandler', 'level': 'DEBUG', 'formatter': 'stdout' }, 'stderr': { 'class': 'logging.StreamHandler', 'level': 'ERROR', 'formatter': 'stderr' } }, 'loggers': { 'info': { 'handlers': ['stdout'], 'level': 'INFO', 'propagate': True }, 'error': { 'handlers': ['stderr'], 'level': 'ERROR', 'propagate': False } } } dictConfig(cfg) lg = 'info' if level == 0 else 'error' lvl = 20 if level == 0 else 40 logger = logging.getLogger(lg) logger.log(lvl, msg)