日志分析代码实现(正则表达式)

日志分析代码实现(正则表达式)

  • 思路

        使用正则表达式处理:
            使用正则提取对应内容
            每段数据转换为对应格式
            精简代码,异常处理,代码效率检查

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))

时间: 2024-10-12 21:39:28

日志分析代码实现(正则表达式)的相关文章

日志分析代码实现(字符串切割)

日志分析代码实现(字符串切割) 思路     不使用正则表达式处理:         进行字符串切割         将[]和"括起的内容特殊处理         将每段数据转换为对应格式         代码精简,代码效率检查 import datetime # 目标日志logline = '''183.60.212.153 - - [19/Feb/2013:10:23:29 +0800] \"GET /o2o/media.html?menu=3 HTTP/1.1" 200

日志分析方法概述(转)

原文:日志分析方法概述 日志在计算机系统中是一个非常广泛的概念,任何程序都有可能输出日志:操作系统内核.各种应用服务器等等.日志的内容.规模和用途也各不相同,很难一概而论. 本文讨论的日志处理方法中的日志,仅指Web日志.其实并没有精确的定义,可能包括但不限于各种前端Web服务器――apache.lighttpd.tomcat等产生的用户访问日志,以及各种Web应用程序自己输出的日志. 在Web日志中,每条日志通常代表着用户的一次访问行为,例如下面就是一条典型的apache日志: 211.87.

GoAccess日志分析工具使用文档

----Sevck 2016/3/4 17:24:13 #1软件说明: GoAccess是一款开源.实时,运行在命令行终端下的web日志分析工具.该工具提供快速.多样的HTTP状态统计,可以令管理员不再纠结于统计各类数据,和繁杂的指令以及一大堆管道/正则表达式说byebye.据GoAccess官方的说法:使用AMD Sempron 2.31GHz的CPU+2GB内存,开启GoAccess所有功能,该软件每秒可以处理10万行日志.当然,如果使用的CPU更强劲,拥有更多的内存,GoAccess的表现

日志分析方法概述

最近几年日志分析这方面的人才需求越来越多,主要伴随数据挖掘的快速发展而迅速增长的.碰巧又在工作中又接触到一些日志记录方面的工作,就顺便了解一下日志系统的整个流程.下面这篇文章转自百度同学的一篇文章,针对大规模日志分析,联系到hadoop,hive的解决方案,阐述的比较全面. 另外就是阿里已经开发出类似的系统odps-通过sql语言进行数据的分析处理,详情见:http://102.alibaba.com/competition/addDiscovery/faq.htm --------------

Awk使用及网站日志分析

Awk使用及网站日志分析 Awk简介 概述 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理. awk有3个不同版本: awk.nawk和gawk,未作特别说明,一般指gawk. awk程序的报告生成能力通常用来从大文本文件中提取数据元素并将它们格式化成可读的报告.最完美的例子是格式化日志文件.awk程序允许从日志文件中只过滤出你想要看

转载:日志分析

MARK 日志分析: http://blog.csdn.net/pkueecser/article/details/9569251 大数据应用--系统监控与日志分析PPT http://wenku.baidu.com/link?url=8CJ-URMjVTVaw3GM1AZ2w9A7V0CIeRz3dx7xvysILLk6IdWpJGT889gQ7-824G4hAK-T2tdqZY1Lo6CEN1hgqHQNlHhVFykWJ_9XQW6EN5K ============= 日志在计算机系统中是

日志分析方法

日志是一个非常广泛的概念,任何程序都有可能输出日志:操作系统内核.各种应用服务器等等.日志的内容.规模和用途也各不相同,很难一概而论.下面以Web日志为例,进行相关的阐述. 一.为什么要进行日志分析 Web日志中包含了大量人们——主要是产品分析人员会感兴趣的信息,最简单的,我们可以从中获取网站每类页面的PV值(PageView,页面访问量).独立IP数(即去重之后的IP数量)等:稍微复杂一些的,可以计算得出用户所检索的关键词排行榜.用户停留时间最高的页面等:更复杂的,构建广告点击模型.分析用户行

Python第七课----正则和日志分析

一.正则表达式: 1.分类:     1.BRE基本正则,grep.sed,vi等软件支持,vim有扩展   2.ERE扩展正则,egrep.grep-E,sed-r等    3.PCRE最重要的,高级语言中的 2.基本语法:   1.元字符 metacharacter . 匹配除了换行符外任意一字符,迭代所有 . [abc] 字符"集合",只能从中拿出一个,然后一个个匹配一个位置 plain,匹配出a [^abc] 字符集合,表示一个字符位置,匹配非abc plain,匹配出plin

日志分析方法概述 &amp; Web日志挖掘分析的方法

日志在计算机系统中是一个非常广泛的概念,任何程序都有可能输出日志:操作系统内核.各种应用服务器等等.日志的内容.规模和用途也各不相同,很难一概而论. 本文讨论的日志处理方法中的日志,仅指Web日志.其实并没有精确的定义,可能包括但不限于各种前端Web服务器--apache.lighttpd.tomcat等产生的用户访问日志,以及各种Web应用程序自己输出的日志. 在Web日志中,每条日志通常代表着用户的一次访问行为,例如下面就是一条典型的apache日志: 211.87.152.44 – - [