code: def _extract_operation_and_namespace(self):
          
          split_tokens = self.split_tokens
  
          if not self._datetime_nextpos:
              # force evaluation of thread to get access to datetime_offset and
              # to protect from changes due to line truncation.
              _ = self.thread
  
          if not self._datetime_nextpos or (len(split_tokens) <=
                                            self._datetime_nextpos + 2):
              return
  
          op = split_tokens[self._datetime_nextpos + 1].lower()
  
          if op == 'warning:':
              # check if this log line got truncated
              if ("warning: log line attempted" in self._line_str and
                      "over max size" in self._line_str):
                  self._datetime_nextpos = split_tokens.index('...')
                  op = split_tokens[self._datetime_nextpos + 1]
              else:
                  # unknown warning, bail out
                  return
  
          if op in self.log_operations:
              self._operation = op
              self._namespace = split_tokens[self._datetime_nextpos + 2]
docs: Helper method to extract both operation and namespace from a logevent.
  
          It doesn't make sense to only extract one as they appear back to back
          in the token list.