code: public FutureData<PushLogMessages> log(String id, int page, int perPage, String orderBy, String orderDirection) {
          FutureData<PushLogMessages> future = new FutureData<>();
          URI uri = newParams().forURL(config.newAPIEndpointURI(LOG));
          POST request = config.http()
                  .POST(uri, new PageReader(newRequestCallback(future, new PushLogMessages(), config)));
          if (id != null && !id.isEmpty()) {
              request.form("id", id);
          }
          if (page > 0) {
              request.form("page", page);
          }
          if (perPage > 0) {
              request.form("per_page", perPage);
          }
          if (orderBy != null && !orderBy.isEmpty()) {
              request.form("order_by", orderBy);
          }
          if (orderDirection != null && !orderDirection.isEmpty()) {
              request.form("order_dir", orderDirection);
          }
          performRequest(future, request);
          return future;
      }
docs: /*
  Retreive log messages about subscriptions
  
  @param id             the ID of a subscription
  @param page           the page number
  @param perPage        numbe rof items per page
  @param orderBy        the field DataSift will use to order the result
  @param orderDirection the direction of ordering, asc or desc
  @return a set of log messages