MCPcopy Index your code
hub / github.com/cloudfoundry/cli / GetRecentLogs

Function GetRecentLogs

actor/sharedaction/logging.go:211–241  ·  view source on GitHub ↗
(appGUID string, client LogCacheClient)

Source from the content-addressed store, hash-verified

209}
210
211func GetRecentLogs(appGUID string, client LogCacheClient) ([]LogMessage, error) {
212 logLineRequestCount := RecentLogsLines
213 var envelopes []*loggregator_v2.Envelope
214 var err error
215
216 for logLineRequestCount >= 1 {
217 envelopes, err = client.Read(
218 context.Background(),
219 appGUID,
220 time.Time{},
221 logcache.WithEnvelopeTypes(logcache_v1.EnvelopeType_LOG),
222 logcache.WithLimit(logLineRequestCount),
223 logcache.WithDescending(),
224 )
225 if err == nil || err.Error() != "unexpected status code 429" {
226 break
227 }
228 logLineRequestCount /= 2
229 }
230 if err != nil {
231 return nil, fmt.Errorf("Failed to retrieve logs from Log Cache: %s", err)
232 }
233
234 logMessages := convertEnvelopesToLogMessages(envelopes)
235 var reorderedLogMessages []LogMessage
236 for i := len(logMessages) - 1; i >= 0; i-- {
237 reorderedLogMessages = append(reorderedLogMessages, *logMessages[i])
238 }
239
240 return reorderedLogMessages, nil
241}
242
243func convertEnvelopesToLogMessages(envelopes []*loggregator_v2.Envelope) []*LogMessage {
244 var logMessages []*LogMessage

Calls 3

ReadMethod · 0.65
ErrorMethod · 0.65

Tested by

no test coverage detected