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