Skip to content

Instantly share code, notes, and snippets.

@shankara-n
Created March 2, 2023 20:44
Show Gist options
  • Select an option

  • Save shankara-n/3573ee834ac0f3cb6d9d9abb35e1cd24 to your computer and use it in GitHub Desktop.

Select an option

Save shankara-n/3573ee834ac0f3cb6d9d9abb35e1cd24 to your computer and use it in GitHub Desktop.
Paginate download AWS log stream
'''
Script to paginate and fetch entire log stream
USAGE
* Make sure to set the correct aws region environment variable and have the creds loaded
* Replace GROUP_NAME and STREAM_NAME variables
* Untested
@author: me
'''
import boto3
GROUP_NAME = 'GROUP_NAME'
STREAM_NAME = 'STREAM_NAME'
def write_events(events):
with open("output.log","a+") as f:
for event in events: f.write(f"{event['timestamp']}, {event['message']} \n")
client = boto3.client('logs')
response = client.get_log_events(startFromHead= True, logGroupName=GROUP_NAME, logStreamName=STREAM_NAME)
write_events(response['events'])
oldNextForwardToken = None
while response['nextForwardToken'] != oldNextForwardToken:
oldNextForwardToken = response['nextForwardToken']
response = client.get_log_events(logGroupName=GROUP_NAME, logStreamName=STREAM_NAME, nextToken = response['nextForwardToken'])
write_events(response['events'])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment