python 利用正则表达式分析日志信息

在工作过程中遇到这样一个需求场景,统计查询耗时,由于生产环境没法用来测试,只能从之前的日志信息中获取分析,

日志文件中输出了大量的日志信息。

解决思路是先找到查询的开始点和结束点,然后计算查询耗时。

 

用到的模块:

re, datetime

注意要使用datetime来计算耗时,datetime要比time强大,可以精确到微秒级别

读文件:

with open("D:\\imglog\\20180408\\serverlog.txt","r") as f:
    for line in f:
        match1 = re.match(p1,line)
        if match1:
            imageid = match1.group('imageId')
            dstr = match1.group('date')            imglist.append(imageid)
            imgdict[imageid] = dstr
            #print(match1.group('date'))
            #print(match1.group('imageId'))
        match2 = re.match(p2,line)
        if match2:
            imageid = match2.group('imageId')
            
            if imageid in imglist:
                d1 = imgdict[imageid]
                d2 = match2.group('date')
                print(imgdict[imageid]+' - '+match2.group('date'))
                sum = sum + dateCompare(d1,d2)/1000
                count = count + 1

计算时差:

def dateCompare(d1,d2):
    dd1 = datetime.datetime.strptime(d1,"%Y/%m/%d %H:%M:%S.%f")
    dd2 = datetime.datetime.strptime(d2,"%Y/%m/%d %H:%M:%S.%f")
    return (dd2-dd1).microseconds

 

 

 

  

posted @ 2018-04-17 17:01  格里高利  阅读(395)  评论(0)    收藏  举报