使用正则表达式解析日志文件

时间:2018-08-06 04:46:43

标签: python regex

有什么简单的方法可以解析计算机生成的日志文件? 这是我要读取并保存到SQL的文件中的第一行。

#4

仅返回' vikan2 '的含义,它返回一个长字符串...

  

('vikan2] [ACT:vitp3] [BINF:]   [FID:e6f97a4b-c4bc-4aa1-876b-3a5ce40b4cfd',)

我正在尝试将字符串转换为如下所示的字典...

import re

mytext='''2018-07-22 08:12:02 Receive DR [SMAC:PI_ID_VOP3_N_K_T] [SVC:vikan2] [ACT:vitp3] [BINF:] [FID:e6f97a4b-c4bc-4aa1-876b-3a5ce40b4cfd] [META:?spp?dl_err=%03%00%
00&] [from:ALERTS] [to:91985] [flags:-1:-1:-1:-1:1] [msg:132:id:e6f97a4b-c4bc-4aa1-876b-3a5ce40b4cfd sub:001 dlvrd:001 submit date:180722070002 done date:1807220
81157 stat:DEL err:000 text:] [udh:0:] 
'''

values = re.search(r'SVC:(.*)]', mytext)
print (values.groups())

更新:

1)我无法读取“元”字段(即未返回预期的字符串'?spp?dl_err =%03%00%\ n00&'

2)我能够使用此代码构建字典。但是我相信必须有更好的方法来做到这一点。

{'log_date':'2018-07-22 08:12:02', 'log_entry':'Receive DR',
     'SMAC': 'PI_ID_VOP3_N_K_T',
     'SVC': 'vikan2',
     'ACT': 'vitp3',
     'BINF': '',
     'FID': 'e6f97a4b-c4bc-4aa1-876b-3a5ce40b4cfd',
     'META': '?spp?dl_err=%03%00%\n00&',
     'from': 'ALERTS',
     'to': '91985',
     'flags': '-1:-1:-1:-1:1',
     'msg': '132:id:e6f97a4b-c4bc-4aa1-876b-3a5ce40b4cfd',
     'sub': '001',
     'dlvrd': '001',
     'submit date': '180722070002',
     'done date': '1807220\n81157',
     'stat': 'DEL',
     'err': '000',
     'text': '',
     'udh': '0:'}

0 个答案:

没有答案