首先,了解需求。要通过日志来获取登录成功的相关信息。取得日志,查看日志格式。
仔细检查下,重要不是代码,是思路。请听解析。
1.登录成功的日志会含有successfully的字样。所以,只要把含有该字样的字段取出来。
2.现在你会发现没行都含有INFO的头。所以,我们现在要想办法把上面的去掉。只要{ }里面的内容,仔细一看,唉!中间有一个AmLogReceiveController -,好,那就一行一行通过这个字段来分开。这样得到的是一个数组,我们只要第二个数组,也就是{ }里面的内容
3.现在得到的是一个json格式的,转对象后来取值,一行一行来转然后取。
好了,基本思路就是这样,我来放代码了。#coding:gbk
import re
import time
import json
file = 'server1.log'
fin = open(file,'r')
c="successfully"
a=fin.readlines()
fout=open('qm.txt','w')
buff = fin.read()
print("开始处理......")
fout.write("sumbitDate"+"\t"+"xforwardedFor"+"\t"+"id"+"\t"+"msg"+"\n")
for x in a:
if c in x:
attr=x.split('AmLogReceiveController -')
data = json.loads(attr[1])
fout.write(data['sumbitDate']+"\t"+data['xforwardedFor']+"\t"+data['id']+"\t"+data['msg']+"\n")
print("处理完毕!生成的文件为qm.txt")
fin.close()
代码写完了。接着来运行下,看行不行嘛!
然后检查一下。qm.txt文件
好了,这个逼就装到这里了。有疑问的可以加我qq1610656207.加个基友