def fetch(self, start=None, stop=None):
        """
        Fetch log records and return them as a list.

        |Args|

        * ``start`` (**int**): non-negative index of the first log
          record to return.
        * ``stop`` (**int**):  non-negative index of the last log
          record to return.

        |Returns|

        * **list**: list of log records (see ``logger`` module for
          definition of log record).

        |Raises|

        * **None**
        """

        # Set defaults if no explicit indices were provided.
        if not start:
            start = 0
        if not stop:
            stop = len(self.log)

        # Sanity check: indices must be valid.
        if start < 0:
            start = 0
        if stop > len(self.log):
            stop = len(self.log)

        # Clear the fetch flag. It will be set again in the emit()
        # method once new data arrives.
        self.waitForFetch = False

        # Return the specified range of log records.
        return self.log[start:stop]