docs: def query(self, logLevel="WARNING", source="ALL",
                startTime=None, endTime=None,
                logCodes=None, users=None, messageCount=1000):
          """
             allows users to look at the log files from a the REST endpoint
  
             Inputs:
                logLevel - this is the level of detail saved in the log files
                  Levels are: OFF, SEVERE, WARNING, INFO, FINE, VERBOSE, and
                    DEBUG
                source - the type of information to search.  Allowed values
                  are: ALL, PORTAL_ADMIN, SHARING, PORTAL
                startTime - datetime object to start search at
                endTime - datetime object to end search
                logCodes - comma seperate list of codes to search
                users - comma seperated list of users to query
                messageCount - integer number of the max number of log
                  entries to return to the user.
          """
          url = self._url + "/query"
          filter_value = {"codes":[], "users":[], "source": "*"}
          if source.lower() == "all":
              filter_value['source'] = "*"
          else:
              filter_value['source'] = [source]
          params = {
              "f" : "json",
              "level" : logLevel
  
          }
          if not startTime is None and \
             isinstance(startTime, datetime):
              params['startTime'] = startTime.strftime("%Y-%m-%dT%H:%M:%S")#2015-01-31T15:00:00
          if not endTime is None and \
             isinstance(endTime, datetime):
              params['endTime'] = startTime.strftime("%Y-%m-%dT%H:%M:%S")
          if not logCodes is None:
              filter_value['codes'] = logCodes.split(',')
          if not users is None:
              filter_value['users'] = users.split(',')
          if messageCount is None:
              params['pageSize'] = 1000
          elif isinstance(messageCount, (int, long, float)):
              params['pageSize'] = int(messageCount)
          else:
              params['pageSize'] = 1000
          params['filter'] = filter_value
          return self._get(url=url,
                              param_dict=params,
                              securityHandler=self._securityHandler,
                              proxy_url=self._proxy_url,
                              proxy_port=self._proxy_port)