in src/sagemaker_core/main/logs.py [0:0]
def get_latest_log_events(self) -> Generator[Tuple[str, dict], None, None]:
"""
This method gets all the latest log events for this stream that exist at this moment in time.
cw_client.get_log_events() always returns a nextForwardToken even if the current batch of events is empty.
You can keep calling cw_client.get_log_events() with the same token until a new batch of log events exist.
API Reference: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/logs/client/get_log_events.html
Returns:
Generator[tuple[str, dict], None, None]: Generator that yields a tuple that consists for two values
str: stream_name,
dict: event dict in format
{
"ingestionTime": number,
"message": "string",
"timestamp": number
}
"""
while True:
if not self.next_token:
token_args = {}
else:
token_args = {"nextToken": self.next_token}
response = self.cw_client.get_log_events(
logGroupName=self.log_group_name,
logStreamName=self.log_stream_name,
startFromHead=True,
**token_args,
)
self.next_token = response["nextForwardToken"]
if not response["events"]:
break
for event in response["events"]:
yield self.log_stream_name, event