getLogEvents method
Lists log events from the specified log stream. You can list all of the log events or filter using a time range.
GetLogEvents is a paginated operation. Each page returned can
contain up to 1 MB of log events or up to 10,000 log events. A returned
page might only be partially full, or even empty. For example, if the
result of a query would return 15,000 log events, the first page isn't
guaranteed to have 10,000 log events even if they all fit into 1 MB.
Partially full or empty pages don't necessarily mean that pagination is
finished. As long as the nextBackwardToken or
nextForwardToken returned is NOT equal to the
nextToken that you passed into the API call, there might be
more log events available. The token that you use depends on the direction
you want to move in along the log stream. The returned tokens are never
null.
If you are using CloudWatch cross-account observability, you can use this
operation in a monitoring account and view data from the linked source
accounts. For more information, see CloudWatch
cross-account observability.
You can specify the log group to search by using either
logGroupIdentifier or logGroupName. You must
include one of these two parameters, but you can't include both.
May throw InvalidParameterException.
May throw ResourceNotFoundException.
May throw ServiceUnavailableException.
Parameter logStreamName :
The name of the log stream.
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 equal to or
later than this time are not included.
Parameter limit :
The maximum number of log events returned. If you don't specify a limit,
the default is as many log events as can fit in a response size of 1 MB
(up to 10,000 log events).
Parameter logGroupIdentifier :
Specify either the name or ARN of the log group to view events from. If
the log group is in a source account and you are using a monitoring
account, you must use the log group ARN.
Parameter logGroupName :
The name of the log group.
Parameter nextToken :
The token for the next set of items to return. (You received this token
from a previous call.)
Parameter startFromHead :
If the value is true, the earliest log events are returned first. If the
value is false, the latest log events are returned first. The default
value is false.
If you are using a previous nextForwardToken value as the
nextToken in this operation, you must specify
true for startFromHead.
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 equal to
this time or later than this time are included. Events with a timestamp
earlier than this time are not included.
Parameter unmask :
Specify true to display the log event fields with all
sensitive data unmasked and visible. The default is false.
To use this operation with this parameter, you must be signed into an
account with the logs:Unmask permission.
Implementation
Future<GetLogEventsResponse> getLogEvents({
required String logStreamName,
int? endTime,
int? limit,
String? logGroupIdentifier,
String? logGroupName,
String? nextToken,
bool? startFromHead,
int? startTime,
bool? unmask,
}) async {
_s.validateNumRange(
'endTime',
endTime,
0,
1152921504606846976,
);
_s.validateNumRange(
'limit',
limit,
1,
10000,
);
_s.validateNumRange(
'startTime',
startTime,
0,
1152921504606846976,
);
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'Logs_20140328.GetLogEvents'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'logStreamName': logStreamName,
if (endTime != null) 'endTime': endTime,
if (limit != null) 'limit': limit,
if (logGroupIdentifier != null)
'logGroupIdentifier': logGroupIdentifier,
if (logGroupName != null) 'logGroupName': logGroupName,
if (nextToken != null) 'nextToken': nextToken,
if (startFromHead != null) 'startFromHead': startFromHead,
if (startTime != null) 'startTime': startTime,
if (unmask != null) 'unmask': unmask,
},
);
return GetLogEventsResponse.fromJson(jsonResponse.body);
}