code: def print_generic(self, msg, prefix=None):
          
          if prefix is None:
              self._log(msg, Logger.INFO)
          else:
              self._log(msg, prefix)
          if self.use_sys:
              if (prefix is not None) and (prefix in self.PREFIX_TO_PRINT_FUNCTION):
                  self.PREFIX_TO_PRINT_FUNCTION[prefix](msg)
              else:
                  gf.safe_print(msg)
docs: Print a message and log it.
  
          :param msg: the message
          :type  msg: Unicode string
          :param prefix: the (optional) prefix
          :type  prefix: Unicode string