code: def ReadFlowOutputPluginLogEntries(self,
                                       client_id,
                                       flow_id,
                                       output_plugin_id,
                                       offset,
                                       count,
                                       with_type=None,
                                       cursor=None):
      
      query = ("SELECT log_entry_type, message, UNIX_TIMESTAMP(timestamp) "
               "FROM flow_output_plugin_log_entries "
               "FORCE INDEX (flow_output_plugin_log_entries_by_flow) "
               "WHERE client_id = %s AND flow_id = %s AND output_plugin_id = %s ")
      args = [
          db_utils.ClientIDToInt(client_id),
          db_utils.FlowIDToInt(flow_id),
          db_utils.OutputPluginIDToInt(output_plugin_id)
      ]
  
      if with_type is not None:
        query += "AND log_entry_type = %s "
        args.append(int(with_type))
  
      query += "ORDER BY log_id ASC LIMIT %s OFFSET %s"
      args.append(count)
      args.append(offset)
  
      cursor.execute(query, args)
  
      ret = []
      for log_entry_type, message, timestamp in cursor.fetchall():
        ret.append(
            rdf_flow_objects.FlowOutputPluginLogEntry(
                client_id=client_id,
                flow_id=flow_id,
                output_plugin_id=output_plugin_id,
                log_entry_type=log_entry_type,
                message=message,
                timestamp=mysql_utils.TimestampToRDFDatetime(timestamp)))
  
      return ret
docs: Reads flow output plugin log entries.