docs: def log_print_request(method, url, query_params=None, headers=None, body=None):
      """
      Log an HTTP request data in a user-friendly representation.
  
      :param method: HTTP method
      :param url: URL
      :param query_params: Query parameters in the URL
      :param headers: Headers (dict)
      :param body: Body (raw body, string)
      :return: None
      """
  
      log_msg = '\n>>>>>>>>>>>>>>>>>>>>> Request >>>>>>>>>>>>>>>>>>> \n'
      log_msg += '\t> Method: %s\n' % method
      log_msg += '\t> Url: %s\n' % url
      if query_params is not None:
          log_msg += '\t> Query params: {}\n'.format(str(query_params))
      if headers is not None:
          log_msg += '\t> Headers:\n{}\n'.format(json.dumps(dict(headers), sort_keys=True, indent=4))
      if body is not None:
          try:
              log_msg += '\t> Payload sent:\n{}\n'.format(_get_pretty_body(headers, body))
          except:
              log_msg += "\t> Payload could't be formatted"
  
      logger.debug(log_msg)