日志分析代码实现(正则表达式)
2017-11-09 21:09
357 查看
日志分析代码实现(正则表达式)
思路使用正则表达式处理: 使用正则提取对应内容 每段数据转换为对应格式 精简代码,异常处理,代码效率检查
import datetime
import re
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)"''' # 使用正则表达式的命名分组,可以直接根据分组名和对应匹配字段 # 进行对应生成新字典 def log_clean(line:str): pattern = '''(?P<remote>([\d\.]{7,})) - - \[(?P<time>[^\[\]]+)\] \"(?P<request>[^"]+)\" (?P<status>\d{3}) (?P<size>\d+) \"-\" \"(?P<useragent>[^"]+)\"\s?''' regex = re.compile(pattern) matcher = regex.fullmatch(line) if matcher: # None时,异常处理 return { k:operations.get(k,lambda x:x)(v) for k,v in matcher.groupdict().items()} operations = { 'time':lambda time: datetime.datetime.strptime(time, '%d/%b/%Y:%H:%M:%S %z'), 'request': lambda request: dict(zip(('method','url','protocol'),request.split())), 'status': int, 'size': int } print(log_clean(logline))
相关文章推荐
- coolcode转SyntaxHighlighter与Mysql正则表达式实现分析
- PHP通过正则表达式下载图片到本地的实现代码
- 正则表达式应用--提取CSDN所有下载资源页面URl的思路与代码实现
- 利用正则表达式实现统计代码中的注释行、空行、以及代码行的数量。
- Java中正则表达式的实现_代码
- coolcode转SyntaxHighlighter与Mysql正则表达式实现分析
- 如何实现正则表达式的JavaScript的代码高亮
- C#代码实现邮箱验证C#中及一些常用的正则表达式
- 能分析压缩的日志,且基于文件输入的PYTHON代码实现
- 如何实现正则表达式的JavaScript的代码高亮
- C#代码实现邮箱验证C#中及一些常用的正则表达式
- 实现自定义类似XML语法分析的正则表达式(原创)
- 如何实现正则表达式的JavaScript的代码高亮
- java中正则表达式提取字符串中日期实现代码
- ASP.NET中服务器控件Button调用javascript代码运用正则表达式验证TextBox中输入的是否为正整数或正小数,符合要求则继续运行服务器端代码功能的实现
- python正则表达式分析新浪网天气预报,通过pyfetion发送短信的代码
- 用70行代码实现日志分析程序-python
- 正则表达式应用之提炼百度歌词的实现代码
- python自动化工具日志查询分析脚本代码实现
- php利用正则表达式实现手机号码格式验证代码