Python 解析log日志
Python 解析log日志
- 软件环境
- 环境搭建
- 待解析log日志格式
- log解析脚本
- 解析后文本格式
软件环境
软件 | 版本 | 作用 |
---|---|---|
Ubuntu | 20.04 | 操作系统 |
python | 3.8.10 | python基础环境,提供正则匹配功能 |
python-dateutil | 2.8.2 | 日期处理库 |
环境搭建
在终端命令行输入以下指令
sudo apt install python3.8 # 安装python3
python3.8 -m pip install python-dateutil # 安装 dateutil 包
待解析log日志格式
log日志一般具有时间戳、事件类型、事件产生对象、属性等,本文以具有下列形式的log日志为例
[2021-09-03 11:03:11]************************** EVENT ERROR **************************
[2021-09-03 11:03:11] DevID: 1
[2021-09-03 11:03:11] Attribute: 187[2021-09-03 11:05:17]************************** EVENT HEART **************************
[2021-09-03 11:05:17] DevID: 1
[2021-09-03 11:05:17] Attribute: 198[2021-09-03 11:06:20]************************** EVENT HEART **************************
[2021-09-03 11:06:20] DevID: 3
[2021-09-03 11:06:20] Attribute: 14[2021-09-03 11:10:41]************************** EVENT HEART **************************
[2021-09-03 11:10:41] DevID: 5
[2021-09-03 11:10:41] Attribute: 96[2021-09-03 11:16:34]************************** EVENT HEART **************************
[2021-09-03 11:16:34] DevID: 1
[2021-09-03 11:16:34] Attribute: 153
log解析脚本
import re
from dateutil.parser import *DEVID = 1
TAB = " "def logparser():line_num = 0# locate EVENT HEARTpattern_heart = re.compile(r'EVENT HEART')# locate xxxx-xx-xx xx:xx:xxpattern_timestamp=re.compile(r'[0-9]*-[0-9]*-[0-9]* [0-9]*:[0-9]*:[0-9]*')last_time = parse("2021-09-03 00:00:00")diff_time = parse("2021-09-03 00:00:00")outfile = open("./out.txt", "w+")with open("./log.txt") as f:lines = f.readlines()for line in lines:# look for event heartresult_heart = pattern_heart.findall(line)# no heart event in this lineif not result_heart: line_num = line_num + 1continue;# 2 is the offset line of Attributeif line_num + 2 > len(lines): print("END")return;# look for DevID, 1 is the offset line of DevIDDevID = lines[line_num + 1].split(":")[-1].strip()# check DevIDif DevID != str(DEVID):line_num = line_num + 1continue;# 2 is the offset line of AttributeAttribute = lines[line_num + 2].split(":")[-1].strip()# look for string according to regex patterntimestamps = pattern_timestamp.findall(line)# exist some matchesif timestamps:for timestamp in timestamps:timestamp = parse(timestamp)diff_time = timestamp - last_timelast_time = timestampoutfile.write(str(timestamp)+TAB+str(diff_time)+TAB+Attribute+"\n")line_num = line_num + 1else:line_num = line_num + 1print("FORMAT ERROR")f.close()outfile.close()if __name__ == "__main__":logparser()print("DONE")
解析后文本格式
2021-09-03 11:05:17 11:05:17 198
2021-09-03 11:16:34 0:11:17 153
Python 解析log日志相关推荐
- python解析log文件_python解析基于xml格式的日志文件
大家中午好,由于过年一直还没回到状态,好久没分享一波小知识了,今天,继续给大家分享一波Python解析日志的小脚本. 首先,同样的先看看日志是个啥样. 都是xml格式的,是不是看着就头晕了??没事,我 ...
- python多进程log日志问题_Python 如何安全地实现实现多进程日志以及日志正常的分割...
在Python中我们经常需要使用到多进程来提高我们程序性能,但是多进程的编程中经常有各种各样的问题来困扰我们,比如多进程和多线程的公用导致的子进程的卡死,进程间的通信等问题.还有一个问题我们也许不经常 ...
- 【数据平台】Python解析Ngnix日志
场景:Ngnix格式具有一定格式,通过python的正则表达式读取日志中每行的字段. Python正则表达式参考:https://docs.python.org/2/library/re.html 代 ...
- 使用Python解析nginx日志文件
项目的一个需求是解析nginx的日志文件. 简单的整理如下: 日志规则描述 首先要明确自己的Nginx的日志格式,这里采用默认Nginx日志格式: log_format main '$remote_a ...
- 【script】python 解析 Windows日志(python-evtx)
Windows日志 模块安装 pip install python-evtx Windows日志 解析源码 源码 import mmap import contextlib import dateti ...
- Python logging log日志写入文件
转载: https://www.cnblogs.com/nancyzhu/p/8551506.html 日志 日志是跟踪软件运行时所发生的事件的一种方法.软件开发者在代码中调用日志函数,表明发生了特定 ...
- python之log日志模块
logging的配置大致有下面几种方式. 1. 通过代码进行完整配置,logging.getLogger()获取logger后,给logger设置各种handler. 2. ...
- python log日志_Python的log日志功能及设置方法
引入:Python中有个logging模块可以完成相关信息的记录,在debug时用它往往事半功倍 一.日志级别(从低到高): DEBUG :详细的信息,通常只出现在诊断问题上 INFO:确认一切按预期 ...
- python log函数怎么打_Python的log日志功能及设置方法
python log函数怎么打_Python的log日志功能及设置方法_Elaine要当律师的博客-CSDN博客
最新文章
- JQueryMiniUI按照时间进行查询
- FM的调制matlab仿真
- 使用HSRP和SLB实现服务器群负载均衡和冗余
- 【Android 性能优化】布局渲染优化 ( 过渡绘制 | 自定义控件过渡绘制 | 布局文件层次深 | GPU 过渡绘制调试工具 | 背景过度绘制 )
- [云炬创业管理笔记]第五章打磨最有效的商业模式测试3
- 【CV】使用 scikit-image 进行图像处理
- 电音之王 对64bit int 取模
- 【mybatis】插入操作更新id
- hash和一致性hash
- js获取精确宽度/高度(带小数位像素)
- linux gcc 静态 动态链接库
- DELL服务器如何使用iDRAC安装操作系统
- “死机短信”缠上山寨手机 往下翻就死机黑屏
- 语言的流变_拔剑-浆糊的传说_新浪博客
- 教资科目二重点简答题总结
- matlab画图三维立体,matlab的三维图形绘制
- 如何防止短信验证被盗刷
- 白噪声检验python_python 加一个白噪声跟老齐学Python之Python安装
- 北海康成上市首日破发,药明生物等基石投资人合计亏损1.26亿港元
- 利用nfs共享漏洞获取系统文件
热门文章
- linux 2.6.28.7 各驱动代码位置(待验证,已验证为蓝色标识)
- “海外传播官”阿乐:让20万外国粉丝通过我“在中国生活”
- Rust交叉编译开发环境的搭建
- python函数介绍(20804字的带图超详细说明)
- Paul Graham:撼动硅谷的人(译文)
- Samsung/三星I9128 Galaxy Grand root教程_方法
- Android接入高德地图SDK 一引入高德sdk
- TensorRT(7):python版本使用入门
- 批量录入快递地址解决方案
- Transformer + RL:是强化学习魔高一尺,还是 Transformer 道高一丈? (1)