python实现扫描日志关键字的示例


Posted in Python onApril 28, 2018

我们在压力测试过程会收集到很多log,怎样快速从中找到有用信息呢?让python脚本帮我们做这部分工作吧!

废话不说,上代码

环境:win10 + python2.7.14

#-*- encoding: utf-8 -*-
#author : beihuijie
#version 1.1
import re
import sys
import os
import countTime
def getParameters():
 '''
 get parameters from console command
 '''
 with open(sys.argv[1], "r") as fread:
 lines = fread.readlines()
 keywords=[]
 for line in lines:
  temp = line.split(', ')
  keywords.append(temp)
 for i in range(0, (len(keywords[0]) - 1)):
  print ' Keyword = %s' % keywords[0][i]
 return keywords[0]
def isFileExists(strfile):
 '''
 check the file whether exists
 '''
 return os.path.isfile(strfile)
def Search(keyword, filename):
 '''
 search the keyword in a assign file
 '''
 if(isFileExists(filename) == False):
 print 'Input filepath is wrong,please check again!'
 sys.exit()
 linenum = 1
 findtime = 0
 with open(filename, 'r') as fread:
 lines = fread.readlines()
 for line in lines:
  rs = re.findall(keyword, line, re.IGNORECASE)
  if rs:
  #output linenum of keyword place 
  sys.stdout.write('line:%d '%linenum)
  lsstr = line.split(keyword)
  strlength = len(lsstr)
  findtime = findtime + 1
  #print strlength
  for i in range(strlength):
   if(i < (strlength - 1)):
   sys.stdout.write(lsstr[i].strip())
   sys.stdout.write(keyword)
   else:
   sys.stdout.write(lsstr[i].strip() + '\n')
  linenum = linenum + 1
 print '+----------------------------------------------------------------------------+'
 print (' Search result: find keyword: %s %d times'%(keyword, findtime))
 print '+----------------------------------------------------------------------------+'
def executeSearch():
 '''
 this is a execute search method
 '''
 ls = getParameters()
 start = countTime.getTime()
 parameter_number = len(ls)
 print 'Filename = %s ' % ls[parameter_number - 1]
 print '--------------------start search-------------------------'
 if(parameter_number >= 2):
 for i in range(parameter_number - 1):
  Search(ls[i], ls[parameter_number - 1])
 else:
 print 'There is a parameter error occured in executeSearch()!'
 end = countTime.getTime()
 print '+----------------------------------------------------------------------------+'
 print ' Total cost time: %s'%countTime.formatTime(end - start)
 print '+============================================================================+'
 
if __name__=='__main__':
 executeSearch()

countTime.py

#-*- encoding: utf-8 -*-
#author : beihuijie
#version 1.1
import datetime
import time
def getTime():
 '''
 return time is format of time(unit is second)
 '''
 return time.time()
def getCPUClockTime():
 '''
 return time is CPU Clock time
 '''
 return time.clock()
def formatTime(timevalue):
 '''
 format the time numbers
 '''
 hour = 0
 minute = 0
 second = 0
 if timevalue > 0:
 #count hour
 hour = timevalue // 3600
 remain = timevalue % 3600
 #count minute
 minute = remain // 60
 remain = remain % 60
 #count second
 second = round(remain, 3)
 return '%.0fh:%.0fm:%.3fs'%(hour, minute, second)
 
if __name__=='__main__':
 value = 134.45632
 print value
 print formatTime(value)

关键字及被扫描的日志路径信息,记录到文件中,以逗号+空格隔开,如,“, ”日志路径信息放到最后。

格式如下:

anr, dalvikvm: Could not find class 'android.app.usage., panic, C:\Users\BHJ\logcat1.log

执行结果:

python实现扫描日志关键字的示例

以上这篇python实现扫描日志关键字的示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python学习笔记_数据排序方法
May 22 Python
用Python代码来解图片迷宫的方法整理
Apr 02 Python
Python实现线程池代码分享
Jun 21 Python
Python实现列表转换成字典数据结构的方法
Mar 11 Python
python3实现TCP协议的简单服务器和客户端案例(分享)
Jun 14 Python
Python2.7基于笛卡尔积算法实现N个数组的排列组合运算示例
Nov 23 Python
python调用系统ffmpeg实现视频截图、http发送
Mar 06 Python
对web.py设置favicon.ico的方法详解
Dec 04 Python
Python面向对象程序设计中类的定义、实例化、封装及私有变量/方法详解
Feb 28 Python
Python实现隐马尔可夫模型的前向后向算法的示例代码
Dec 31 Python
Python如何将图像音视频等资源文件隐藏在代码中(小技巧)
Feb 16 Python
使用Python将Exception异常错误堆栈信息写入日志文件
Apr 08 Python
python socket网络编程之粘包问题详解
Apr 28 #Python
在Windows中设置Python环境变量的实例讲解
Apr 28 #Python
PyTorch快速搭建神经网络及其保存提取方法详解
Apr 28 #Python
对Python中type打开文件的方式介绍
Apr 28 #Python
PyTorch上搭建简单神经网络实现回归和分类的示例
Apr 28 #Python
TensorFlow实现非线性支持向量机的实现方法
Apr 28 #Python
python 通过logging写入日志到文件和控制台的实例
Apr 28 #Python
You might like
Oracle Faq(Oracle的版本)
2006/10/09 PHP
PHP 将图片按创建时间进行分类存储的实现代码
2010/01/05 PHP
php Smarty 字符比较代码
2011/02/27 PHP
PHP运行环境配置与开发环境的配置(图文教程)
2013/06/04 PHP
解析linux下安装memcacheq(mcq)全过程笔记
2013/06/27 PHP
PHP获取数组的键与值方法小结
2015/06/13 PHP
PHP图片水印类的封装
2017/07/06 PHP
PHP实现简单的模板引擎功能示例
2017/09/02 PHP
yii2实现Ueditor百度编辑器的示例代码
2018/11/02 PHP
PHP Web表单生成器案例分析
2020/06/02 PHP
PHP连接MySQL数据库操作代码实例解析
2020/07/11 PHP
Microsoft Ajax Minifier 压缩javascript的方法
2010/03/05 Javascript
JavaScript高级程序设计 阅读笔记(四) ECMAScript中的类型转换
2012/02/27 Javascript
js querySelector和getElementById通过id获取元素的区别
2012/04/20 Javascript
js控制不同的时间段显示不同的css样式的实例代码
2013/11/04 Javascript
jQuery基于当前元素进行下一步的遍历
2014/05/20 Javascript
js完美解决IE6不支持position:fixed的bug
2015/04/24 Javascript
学习jQuey中的return false
2015/12/18 Javascript
layui获取多选框中的值方法
2018/08/15 Javascript
node链接mongodb数据库的方法详解【阿里云服务器环境ubuntu】
2019/03/07 Javascript
JavaScript实现滑动门效果
2020/01/18 Javascript
VUE+elementui组件在table-cell单元格中绘制微型echarts图
2020/04/20 Javascript
python实现网站的模拟登录
2016/01/04 Python
Python之自动获取公网IP的实例讲解
2017/10/01 Python
深入理解Python中的super()方法
2017/11/20 Python
Python3单行定义多个变量或赋值方法
2018/07/12 Python
python实现的多任务版udp聊天器功能案例
2019/11/13 Python
PyTorch和Keras计算模型参数的例子
2020/01/02 Python
Django接收照片储存文件的实例代码
2020/03/07 Python
Python 将 QQ 好友头像生成祝福语的实现代码
2020/05/03 Python
django ObjectDoesNotExist 和 DoesNotExist的用法
2020/07/09 Python
HTML页面中添加Canvas标签示例
2015/01/01 HTML / CSS
机电一体化专业应届生求职信
2013/11/27 职场文书
教师竞聘演讲稿
2014/05/16 职场文书
承诺书样本
2014/08/30 职场文书
2015年个人审计工作总结
2015/04/07 职场文书