python解析log文件_使用Python解析nginx日志文件

本文介绍了如何使用Python2.7解析nginx的日志文件,将日志中的时间转换为时间戳并存储到文件中。通过glob模块获取日志文件,linecache模块读取文件内容,再用正则表达式解析每条日志,最后利用time模块将日期转换为时间戳。
摘要由CSDN通过智能技术生成

本文使用Python2.7解析nginx日志文件,并把nginx的时间转化为时间戳(1970纪元后经过的浮点秒数),并存放到特定文件中。

日志规则描述

Nginx的http日志格式:

log_format main '$remote_addr - $remote_user [$time_local] "$request" '

'$status $body_bytes_sent "$http_referer" ';

示例如下:

199.120.110.21 - - [01/Jul/1995:00:00:09 -0400] "GET /shuttle/missions/sts-73/mission-sts-73.html HTTP/1.0" 200 4085

解决思路

获取所有日志文件

这里使用Python的glob模块来获取所有日志文件。日志文件每天0时进行备份,命名为nginx.log.YYMMDD。

import glob

def readfile(path):

return glob.glob(path + '*')

获取日志中所有行

模块linecache允许从任何文件里得到任何的行,并且使用缓存进行优化,常见的情况是从单个文件读取多行。

import linecache

def readline(path):

return linecache.getlines(path)

解析每一条日志

使用python的re模块解析每一条日志。

正则表达式

ip_regex = r"?P[\d.]*"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值