code: def read_log(self, idx, offset, size):
          
          if not isinstance(idx, baseinteger):
              raise TypeError("idx can only be an instance of type baseinteger")
          if not isinstance(offset, baseinteger):
              raise TypeError("offset can only be an instance of type baseinteger")
          if not isinstance(size, baseinteger):
              raise TypeError("size can only be an instance of type baseinteger")
          data = self._call("readLog",
                       in_p=[idx, offset, size])
          return data
docs: Reads the VM log file. The chunk size is limited, so even if you
          ask for a big piece there might be less data returned.
  
          in idx of type int
              Which log file to read. 0=current log file.
  
          in offset of type int
              Offset in the log file.
  
          in size of type int
              Chunk size to read in the log file.
  
          return data of type str
              Data read from the log file. A data size of 0 means end of file
              if the requested chunk size was not 0. This is the unprocessed
              file data, i.e. the line ending style depends on the platform of
              the system the server is running on.