日志分析

import re
import datetime



logline = '''183.60.212.153 - - [19/Feb/2013:10:23:29 +0800] \
"GET /o2o/media.html?menu=3 HTTP/1.1" 200 16691 "-" \
"Mozilla/5.0 (compatible; EasouSpider; +http://www.easou.com/search/spider.html)"'''


pattern = '''(?P<remote>[\d\.]{7,}) - - \[(?P<datetime>[^\[\]]+)\] "(?P<request>[^"]+)" (?P<status>\d+) (?P<size>\d+) "([^"]+)" "(?P<useragent>[^"]+)'''
regex = re.compile(pattern)
ops = {
    'datetime':lambda timestr:datetime.datetime.strptime(timestr,'%d/%b/%Y:%H:%M:%S %z'),
    'status': int,
    'size': int,
    'request':lambda request: dict(zip(('method', 'url', 'protocol'), request.split()))
    }
d = {}
#for k , v in extract(logline).items():
#d[k] = ops[k].get(k, lambda x:x)(v)
#{k:ops[k].get(k, lambda x:x)(v) for k , v in matcher.groupdict().items() }

def extract(line):
    matcher = regex.match(line)
    info ={k:ops.get(k, lambda x:x)(v) for k , v in matcher.groupdict().items()}
    return info

  

转载于:https://www.cnblogs.com/hkcs/p/7782900.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值