场景:Ngnix格式具有一定格式,通过python的正则表达式读取日志中每行的字段。

Python正则表达式参考:https://docs.python.org/2/library/re.html

代码参考:

# -*- coding: utf-8 -*-
'''
Created on 2018年1月4日@author: Jason.F
@summary: Ngnix log parse
'''
import time
import re
class NgnixLogParse(object):def __init__(self,logline):self.logline=logline'''log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for" "$upstream_addr" "$request_time" "$upstream_response_time" $host';'''def logparse(self):#正则表达式ip = r"?P<ip>[\d.]*"
#timelocal = r"?P<timelocal>\[.*\]" #拆解成date、month、year、log_time
user =r"?P<user>\S+"
date = r"?P<date>\d+"
month = r"?P<month>\w+"
year = r"?P<year>\d+"
log_time = r"?P<time>\S+"
#request = r"?P<request>[^\"]*" #拆解成method、request、portocal
method = r"?P<method>\S+"
request = r"?P<request>\S+"
protocal=r"?P<protocal>\S+"
status = r"?P<status>\d+"
bodyBytesSent = r"?P<bodyBytesSent>\d+"
referer=r"?P<referer>\S+"
user_agent = r"?P<user_agent>[^\"]*"
forwardedfor=r"?P<forwardedfor>\S+"
upstream_addr = r"?P<upstream_addr>.*"
requesttime=r"?P<requesttime>.*"
responsetime=r"?P<responsetime>.*"
host = r"?P<host>\S+"
p=re.compile(r"(%s)\s-\s(%s)\s\[(%s)/(%s)/(%s)\:(%s)\s[\S]+\]\s\"(%s)\s(%s)\s(%s)\"\s(%s)\s(%s)\s\"(%s)\"\s\"(%s)\"\s\"(%s)\"\s\"(%s)\"\s\"(%s)\"\s\"(%s)\"\s(%s) " \
%(ip,user,date,month,year,log_time,method,request,protocal,status,bodyBytesSent,referer,user_agent,forwardedfor,upstream_addr,requesttime,responsetime,host),re.VERBOSE)
m = re.findall(p, self.logline)return mif __name__ == "__main__":    start = time.clock() logline='11.11.7.21 - - [22/Nov/2017:00:28:46 +0800] "POST /xyz/qn_cb HTTP/1.1" 200 218 "-" "qiniu-callback/1.0" "-" "1.25.69.11:8080" "0.008" "0.008" x.163.com'nlp=NgnixLogParse(logline)m=nlp.logparse()print (m)print (m[0][6])end = time.clock()    print('finish all in %s' % str(end - start)) 

执行结果:

[('11.11.7.21', '-','22', 'Nov', '2017', '00:28:46', 'POST', '/xyz/qn_cb', 'HTTP/1.1', '200', '218', 'qiniu-callback/1.0', '-','1.25.69.11:8080', '0.008', '0.008', 'x.163.com')]
/xyz/qn_cb
finish all in 0.00115241167476

【数据平台】Python解析Ngnix日志相关推荐

  1. Python 解析log日志

    Python 解析log日志 软件环境 环境搭建 待解析log日志格式 log解析脚本 解析后文本格式 软件环境 软件 版本 作用 Ubuntu 20.04 操作系统 python 3.8.10 py ...

  2. 使用Python解析nginx日志文件

    项目的一个需求是解析nginx的日志文件. 简单的整理如下: 日志规则描述 首先要明确自己的Nginx的日志格式,这里采用默认Nginx日志格式: log_format main '$remote_a ...

  3. 【script】python 解析 Windows日志(python-evtx)

    Windows日志 模块安装 pip install python-evtx Windows日志 解析源码 源码 import mmap import contextlib import dateti ...

  4. 2022北京冬奥会竞赛日程表以及json数据与python解析

    说明 看完开幕式很自豪,特意整理了一波数据,开源给大家使用 效果展示 # print(get_Winter_Olympics_schedule("02/05")) # 指定日期pr ...

  5. python解析tcp数据包-python解析获取发往本机的数据包并打印

    1.[文件] tcp.py ~ 2KB 下载(69) # -*- coding: cp936 -*- import socket from struct import * from time impo ...

  6. Python 解析构建数据大杂烩 -- csv、xml、json、excel

    Python 可以通过各种库去解析我们常见的数据.其中 csv 文件以纯文本形式存储表格数据,以某字符作为分隔值,通常为逗号:xml 可拓展标记语言,很像超文本标记语言 Html ,但主要对文档和数据 ...

  7. 大数据平台架构浅析——以讯飞大数据平台Odeon为例

    文章目录 大数据平台架构解析--以讯飞大数据平台Odeon为例 定义 功能 数据采集 数据开发 数据分析 数据编程 补充 大数据平台架构解析--以讯飞大数据平台Odeon为例 定义 Odeon大数据平 ...

  8. 湖上建仓全解析:如何打造湖仓一体数据平台 | DEEPNOVA技术荟系列公开课第四期

    如今,面对数字化快速发展带来的挑战,现代化企业需要打破以往数据的孤岛,让数据从采集.加工.管理到应用,是统一的数据存储和数据处理,甚至是作为全栈式的湖仓一体数据平台,以支撑各类数据赋能业务,进而创造更 ...

  9. python解析log文件_python解析基于xml格式的日志文件

    大家中午好,由于过年一直还没回到状态,好久没分享一波小知识了,今天,继续给大家分享一波Python解析日志的小脚本. 首先,同样的先看看日志是个啥样. 都是xml格式的,是不是看着就头晕了??没事,我 ...

最新文章

  1. 一堂拯救万千股民的公开课
  2. DB2 SQL查询结果集自动编号、返回条数范围控制研究
  3. 【opencv】YUV各种色彩、YUV420sp2RGB
  4. 关于医网联影像工作站3.0(ProDicom Workstation 3.0)的版权及注册问题说明
  5. Quartz定时框架CronTrigger开发使用实例
  6. 实现Callable接口通过FutureTask包装器来创建Thread线程
  7. 《精解Windows8》——1.2 告别开始按钮进入“开始”屏幕时代
  8. qtcreator中常用快捷键总结
  9. SEAYAR - 思雅,快乐生活
  10. 康奈尔大学计算机科学人工智能,美国康奈尔大学工程学院申请之计算机科学
  11. [2018.07.14 T1] B君的第四题
  12. 深度剖析JVM常量池,String字符串相关八股文,茴香豆的茴有几种写法?
  13. oCPC实践录 | 好难理解的oCPC成本控制算法(1)
  14. android ae动画教程,AE动画转Web代码工具指北-Lottie
  15. 专治选择困难症:Mate 10 Pro和P20 Pro之间如何选?
  16. MATLAB画心形立体图
  17. IE8和IE9对于前端来说有什么区别
  18. display:flex的讲解
  19. 点开瞅瞅,再来几道Python面试题吧,Python面试题No20
  20. 新浪博客大赛:你刷我也刷?

热门文章

  1. Linux系统之时间管理
  2. 搜狗输入法怎么切换为繁体_搜狗这次太良心了,必须强推这工具!
  3. Win10环境下安装压缩包版本MySQL-8.0.13
  4. Hibernate学习笔记--第一个Hibernate框架程序
  5. 修改 framework 代码的经验和踩过的坑
  6. Android 7.0 init.rc的一点改变
  7. 计算机操作系统开启审计功能,深入浅出理解操作系统安全
  8. jQuery实现enter键登录
  9. K8S发布解释型语言应用的最佳实践
  10. 前端论坛、博客及公众号汇总