1import sys
2import re
3
4"""
5Example usage:
6    python check_log_for_xa.py path/to/log/mysqld.2.err rollback,commit,prepare
7"""
8
9log_path = sys.argv[1]
10desired_filters = sys.argv[2]
11
12all_filters = [
13  ('rollback', re.compile('(\[Note\] rollback xid .+)')),
14  ('commit', re.compile('(\[Note\] commit xid .+)')),
15  ('prepare',
16    re.compile('(\[Note\] Found \d+ prepared transaction\(s\) in \w+)')),
17]
18
19active_filters = [f for f in all_filters if f[0] in desired_filters]
20
21with open(log_path) as log:
22  for line in log:
23    line = line.strip()
24    for f in active_filters:
25      match = f[1].search(line)
26      if match:
27        print("**found '%s' log entry**" % f[0])
28