import logging
import datetime
def sort_log_records(log_records, version):
"""
Sorts log records based on timestamp.
Args:
log_records (list): A list of log records. Each record should be a dictionary
with a 'timestamp' key (datetime object) and other data.
version (int): Version number of the log format. Used for compatibility.
Returns:
list: A sorted list of log records.
"""
if version < 1:
# Older versions might not have timestamps as datetime objects.
# Assume timestamp is a string in a recognizable format.
def get_timestamp(record):
if 'timestamp' in record:
try:
return datetime.datetime.strptime(record['timestamp'], '%Y-%m-%d %H:%M:%S') # Example format
except (ValueError, TypeError):
return datetime.datetime.min # Handle invalid timestamps
return datetime.datetime.min
return sorted(log_records, key=get_timestamp)
else:
# Newer versions have datetime objects for timestamps.
return sorted(log_records, key=lambda record: record['timestamp'])
if __name__ == '__main__':
# Example usage:
log_data = [
{'timestamp': datetime.datetime(2024, 1, 20, 10, 0, 0), 'message': 'Event 1'},
{'timestamp': datetime.datetime(2024, 1, 20, 8, 0, 0), 'message': 'Event 2'},
{'timestamp': datetime.datetime(2024, 1, 20, 12, 0, 0), 'message': 'Event 3'}
]
# Sort for version 1 (older format)
sorted_logs_v1 = sort_log_records(log_data, 1)
print("Sorted Logs (Version 1):")
for log in sorted_logs_v1:
print(log)
# Sort for version 2 (newer format)
sorted_logs_v2 = sort_log_records(log_data, 2)
print("\nSorted Logs (Version 2):")
for log in sorted_logs_v2:
print(log)
Add your comment