code: def log(self, message, level=None):
      
      if level is None:
        _log_level = logging.INFO
      else:
        if level == "trace" or level == "debug":
          _log_level = logging.DEBUG
        elif level == "info":
          _log_level = logging.INFO
        elif level == "warn":
          _log_level = logging.WARNING
        elif level == "error":
          _log_level = logging.ERROR
        else:
          raise ValueError("%s is not supported as logging level" % str(level))
  
      self.logger.log(_log_level, message)
docs: Log message, optionally providing a logging level
  
      It is compatible with StreamParse API.
  
      :type message: str
      :param message: the log message to send
      :type level: str
      :param level: the logging level,
                    one of: trace (=debug), debug, info, warn or error (default: info)