docs: static public void logResponseDetails(HttpResponse response, SFLogger logger)
    {
      if (response == null)
      {
        logger.error("null response");
        return;
      }
  
      // log the response
      if (response.getStatusLine() != null)
      {
        logger.error("Response status line reason: {}",
                     response.getStatusLine().getReasonPhrase());
      }
  
      // log each header from response
      Header[] headers = response.getAllHeaders();
      if (headers != null)
      {
        for (Header header : headers)
        {
          logger.error("Header name: {}, value: {}",
                       header.getName(), header.getValue());
        }
      }
  
      // log response
      if (response.getEntity() != null)
      {
        try
        {
          StringWriter writer = new StringWriter();
          BufferedReader bufferedReader = new BufferedReader(
              new InputStreamReader((response.getEntity().getContent())));
          IOUtils.copy(bufferedReader, writer);
          logger.error("Response content: {}", writer.toString());
        }
        catch (IOException ex)
        {
          logger.error("Failed to read content due to exception: "
                       + "{}", ex.getMessage());
        }
      }
    }