filterLogEvents method
Lists log events from the specified log group. You can list all the log events or filter the results using a filter pattern, a time range, and the name of the log stream.
By default, this operation returns as many log events as can fit in 1 MB (up to 10,000 log events) or all the events found within the time range that you specify. If the results include a token, then there are more log events available, and you can get additional results by specifying the token in a subsequent call. This operation can return empty results while there are more log events available through the token.
The returned log events are sorted by event timestamp, the timestamp when
the event was ingested by CloudWatch Logs, and the ID of the
PutLogEvents
request.
May throw InvalidParameterException. May throw ResourceNotFoundException. May throw ServiceUnavailableException.
Parameter logGroupName
:
The name of the log group to search.
Parameter endTime
:
The end of the time range, expressed as the number of milliseconds after
Jan 1, 1970 00:00:00 UTC. Events with a timestamp later than this time are
not returned.
Parameter filterPattern
:
The filter pattern to use. For more information, see Filter
and Pattern Syntax.
If not provided, all the events are matched.
Parameter interleaved
:
If the value is true, the operation makes a best effort to provide
responses that contain events from multiple log streams within the log
group, interleaved in a single response. If the value is false, all the
matched log events in the first log stream are searched first, then those
in the next log stream, and so on. The default is false.
Important: Starting on June 17, 2019, this parameter is ignored and the value is assumed to be true. The response from this operation always interleaves events from multiple log streams within a log group.
Parameter limit
:
The maximum number of events to return. The default is 10,000 events.
Parameter logStreamNamePrefix
:
Filters the results to include only events from log streams that have
names starting with this prefix.
If you specify a value for both logStreamNamePrefix
and
logStreamNames
, but the value for
logStreamNamePrefix
does not match any log stream names
specified in logStreamNames
, the action returns an
InvalidParameterException
error.
Parameter logStreamNames
:
Filters the results to only logs from the log streams in this list.
If you specify a value for both logStreamNamePrefix
and
logStreamNames
, the action returns an
InvalidParameterException
error.
Parameter nextToken
:
The token for the next set of events to return. (You received this token
from a previous call.)
Parameter startTime
:
The start of the time range, expressed as the number of milliseconds after
Jan 1, 1970 00:00:00 UTC. Events with a timestamp before this time are not
returned.
If you omit startTime
and endTime
the most
recent log events are retrieved, to up 1 MB or 10,000 log events.
Implementation
Future<FilterLogEventsResponse> filterLogEvents({
required String logGroupName,
int? endTime,
String? filterPattern,
bool? interleaved,
int? limit,
String? logStreamNamePrefix,
List<String>? logStreamNames,
String? nextToken,
int? startTime,
}) async {
ArgumentError.checkNotNull(logGroupName, 'logGroupName');
_s.validateStringLength(
'logGroupName',
logGroupName,
1,
512,
isRequired: true,
);
_s.validateNumRange(
'endTime',
endTime,
0,
1152921504606846976,
);
_s.validateStringLength(
'filterPattern',
filterPattern,
0,
1024,
);
_s.validateNumRange(
'limit',
limit,
1,
10000,
);
_s.validateStringLength(
'logStreamNamePrefix',
logStreamNamePrefix,
1,
512,
);
_s.validateStringLength(
'nextToken',
nextToken,
1,
1152921504606846976,
);
_s.validateNumRange(
'startTime',
startTime,
0,
1152921504606846976,
);
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'Logs_20140328.FilterLogEvents'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'logGroupName': logGroupName,
if (endTime != null) 'endTime': endTime,
if (filterPattern != null) 'filterPattern': filterPattern,
if (interleaved != null) 'interleaved': interleaved,
if (limit != null) 'limit': limit,
if (logStreamNamePrefix != null)
'logStreamNamePrefix': logStreamNamePrefix,
if (logStreamNames != null) 'logStreamNames': logStreamNames,
if (nextToken != null) 'nextToken': nextToken,
if (startTime != null) 'startTime': startTime,
},
);
return FilterLogEventsResponse.fromJson(jsonResponse.body);
}