1. import re
  2. def extract_log_values(log_file_path):
  3. """
  4. Extracts specific values from a log file.
  5. """
  6. try:
  7. with open(log_file_path, 'r') as f:
  8. log_data = f.read()
  9. except FileNotFoundError:
  10. return "Error: Log file not found."
  11. # Define regex patterns for values to extract. Adjust as needed.
  12. patterns = {
  13. "error_count": r"ERROR: (.*?)", # Extract error counts
  14. "warning_count": r"WARNING: (.*?)", #Extract warning counts
  15. "timestamp": r"(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})", #Extract timestamps
  16. "ip_address": r"(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})", #Extract ip addresses
  17. }
  18. extracted_values = {}
  19. for key, pattern in patterns.items():
  20. match = re.search(pattern, log_data)
  21. if match:
  22. extracted_values[key] = match.group(1).strip() # Extract the matched value and remove whitespace
  23. else:
  24. extracted_values[key] = "Not found"
  25. return extracted_values
  26. if __name__ == '__main__':
  27. # Example usage:
  28. log_file = "example.log" # Replace with your log file path
  29. values = extract_log_values(log_file)
  30. print(values)

Add your comment