使用parse()函数解析日志文件的Python代码
发布时间:2024-01-20 17:40:46
以下是使用Python的parse()函数解析日志文件的代码示例:
import re
from datetime import datetime
def parse(log_file_path):
logs = []
with open(log_file_path, 'r') as file:
for line in file:
log_entry = {}
# Parse timestamp
timestamp_match = re.search(r'\[(.*?)\]', line)
if timestamp_match:
timestamp_str = timestamp_match.group(1)
timestamp = datetime.strptime(timestamp_str, '%Y-%m-%d %H:%M:%S')
log_entry['timestamp'] = timestamp
# Parse log level
log_level_match = re.search(r'\b(DEBUG|INFO|WARNING|ERROR|FATAL)\b', line)
if log_level_match:
log_level = log_level_match.group(1)
log_entry['log_level'] = log_level
# Parse log message
log_message_match = re.search(r'(?<=\]).*$', line)
if log_message_match:
log_message = log_message_match.group(0).strip()
log_entry['log_message'] = log_message
logs.append(log_entry)
return logs
# Example usage
log_file_path = 'example.log'
parsed_logs = parse(log_file_path)
for log_entry in parsed_logs:
print(log_entry)
在这个示例中,我们假设日志文件的格式类似于[timestamp] log_level log_message。我们使用re模块来解析每一行的时间戳、日志级别和日志消息。然后,我们将解析的日志条目以字典的形式存储在logs列表中。
解析函数parse()需要一个日志文件的路径作为输入,并返回一个包含所有解析的日志条目的列表。
在示例的最后,我们使用parse()函数解析名为example.log的日志文件,并打印出每个解析的日志条目。
请注意,这只是一个基本示例,您可能需要根据实际的日志格式进行相应的修改和调整。
