in cloudwatch/cloudwatch.go [453:487]
func (output *OutputPlugin) existingLogStream(e *Event) (*logStream, error) {
var nextToken *string
var stream *logStream
for stream == nil {
resp, err := output.describeLogStreams(e, nextToken)
if err != nil {
return nil, err
}
for _, result := range resp.LogStreams {
if aws.StringValue(result.LogStreamName) == e.stream {
stream = &logStream{
logGroupName: e.group,
logStreamName: e.stream,
logEvents: make([]*cloudwatchlogs.InputLogEvent, 0, maximumLogEventsPerPut),
nextSequenceToken: result.UploadSequenceToken,
}
output.streams[e.group+e.stream] = stream
logrus.Debugf("[cloudwatch %d] Initializing internal buffer for exising log stream %s\n", output.PluginInstanceID, e.stream)
stream.updateExpiration() // initialize
break
}
}
if stream == nil && resp.NextToken == nil {
return nil, fmt.Errorf("error: does not compute: Log Stream %s could not be created, but also could not be found in the log group", e.stream)
}
nextToken = resp.NextToken
}
return stream, nil
}