in pkg/plugin/cloudlogging/client.go [293:340]
func (c *Client) ListLogs(ctx context.Context, q *Query) ([]*loggingpb.LogEntry, error) {
// Never exceed the maximum page size
pageSize := int32(math.Min(float64(q.Limit), 1000))
resourceName := []string{}
if q.BucketId == "" {
resourceName = append(resourceName, legacyProjectResourceName(q.ProjectID))
} else {
resourceName = append(resourceName, projectResourceName(q.ProjectID, q.BucketId, q.ViewId))
}
req := loggingpb.ListLogEntriesRequest{
ResourceNames: resourceName,
Filter: q.String(),
OrderBy: "timestamp desc",
PageSize: pageSize,
}
start := time.Now()
defer func() {
log.DefaultLogger.Debug("Finished listing logs", "duration", time.Since(start).String())
}()
it := c.lClient.ListLogEntries(ctx, &req)
if it == nil {
return nil, errors.New("nil response")
}
var i int64
entries := []*loggingpb.LogEntry{}
for {
resp, err := it.Next()
if err == iterator.Done {
break
}
if err != nil {
log.DefaultLogger.Error("error getting page", "error", err)
break
}
entries = append(entries, resp)
i++
if i >= q.Limit {
break
}
}
return entries, nil
}