Язык программирования Python

Обработка лога


Предыдущий пример регулярного выражения позволит выделить из лога записи с определенной меткой и подать их в сокращенном виде:

import re log_re = re.compile(r"""(?P<date>[A-Za-z]{3}\s+\d+\s+\d\d:\d\d:\d\d) \S+ kernel: PAY: .+ DST=(?P<dst>\S+).* LEN=(?P<len>\d+).* DPT=(?P<dpt>\d+) """)

for line in open("message.log"): m = log_re.match(line) if m: print "%(date)s %(dst)s:%(dpt)s size=%(len)s" % m.groupdict()

В результате получается

Nov 27 15:57:59 192.168.1.115:1039 size=1500 Nov 27 15:57:59 192.168.1.200:8080 size=40 Nov 27 15:57:59 192.168.1.115:1039 size=515 Nov 27 15:57:59 192.168.1.200:8080 size=40 Nov 27 15:57:59 192.168.1.115:1039 size=40 Nov 27 15:57:59 192.168.1.200:8080 size=40 Nov 27 15:57:59 192.168.1.115:1039 size=40



Содержание раздела