in cloudwatchlogs/log_group.go [50:98]
func (cwl *CloudWatchLogs) GetLogs(i *GetLogsInput) []LogLine {
var logLines []LogLine
input := &awscwl.FilterLogEventsInput{
LogGroupName: aws.String(i.LogGroupName),
Interleaved: aws.Bool(true),
}
if !i.StartTime.IsZero() {
input.SetStartTime(i.StartTime.UTC().UnixNano() / int64(time.Millisecond))
}
if !i.EndTime.IsZero() {
input.SetEndTime(i.EndTime.UTC().UnixNano() / int64(time.Millisecond))
}
if i.Filter != "" {
input.SetFilterPattern(i.Filter)
}
if len(i.LogStreamNames) > 0 {
input.SetLogStreamNames(aws.StringSlice(i.LogStreamNames))
}
err := cwl.svc.FilterLogEventsPages(
input,
func(resp *awscwl.FilterLogEventsOutput, lastPage bool) bool {
for _, event := range resp.Events {
logLines = append(logLines,
LogLine{
EventId: aws.StringValue(event.EventId),
Message: aws.StringValue(event.Message),
LogStreamName: aws.StringValue(event.LogStreamName),
Timestamp: time.Unix(0, aws.Int64Value(event.Timestamp)*int64(time.Millisecond)),
},
)
}
return true
},
)
if err != nil {
console.ErrorExit(err, "Could not get logs")
}
return logLines
}