Python 过滤错误log并导出的实例


Posted in Python onDecember 26, 2019

前言:

测试过程中获取App相关log后,如何快速找出crash的部分,并导出到新的文件呢?

感兴趣的话,继续往下看吧~

思路:遍历多个日志文件,找出含有Error和Crash的日志,并把该行日志输出到另一个文件result.txt中。

def find_log(path):
  file_list = os.listdir(path)
  for file in file_list:
    file_name = file
    log_path = os.path.join(path, file)
    with open(log_path, 'rb') as f:
      lines = f.readlines()
      index = 0
      for line in lines:
        index += 1
        if 'Crash' in line.decode("utf8", "ignore") or 'Error' in line.decode("utf8", "ignore"):
          ss = re.findall(r'(.*Crash.*)', line.decode("utf8", "ignore"))
          zz = re.findall(r'(.*Error.*)', line.decode("utf8", "ignore"))
          if len(zz) > 0:
            with open('result.txt', 'a') as ff:
              ff.write('文件名:'+file_name + ' 第' + str(index) + '行: ' + zz[0] + '\n')
          elif len(ss) > 0:
            with open('result.txt', 'a') as ff:
              ff.write('文件名:'+file_name + ' 第' + str(index) + '行: ' + ss[0] + '\n')
          else:
            break

result.txt文件展示如下:

文件名:amstart.log 第611行: 01-12 11:10:33.534 E/FirebaseCrash(14844): Failed waiting for crash api to load.
文件名:amstart.log 第612行: 01-12 11:10:33.534 E/FirebaseCrash(14844): java.lang.InterruptedException
文件名:amstart.log 第613行: 01-12 11:10:33.534 E/FirebaseCrash(14844):  at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedNanos(AbstractQueuedSynchronizer.java:1013)
文件名:amstart.log 第614行: 01-12 11:10:33.534 E/FirebaseCrash(14844):  at java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1302)
文件名:amstart.log 第615行: 01-12 11:10:33.534 E/FirebaseCrash(14844):  at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:249)
文件名:amstart.log 第616行: 01-12 11:10:33.534 E/FirebaseCrash(14844):  at com.google.firebase.crash.FirebaseCrash.zzbsk(Unknown Source)
文件名:amstart.log 第617行: 01-12 11:10:33.534 E/FirebaseCrash(14844):  at com.google.firebase.crash.FirebaseCrash.zza(Unknown Source)
文件名:amstart.log 第618行: 01-12 11:10:33.534 E/FirebaseCrash(14844):  at com.google.firebase.crash.zza.run(Unknown Source)
文件名:amstart.log 第619行: 01-12 11:10:33.534 E/FirebaseCrash(14844):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
文件名:amstart.log 第620行: 01-12 11:10:33.534 E/FirebaseCrash(14844):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
文件名:amstart.log 第621行: 01-12 11:10:33.534 E/FirebaseCrash(14844):  at java.lang.Thread.run(Thread.java:818)
文件名:uninstall.log 第213行: 01-12 11:16:33.382 W/ActivityManager( 1068): Error in app com.baidu.mtc.new_monkey running instrumentation ComponentInfo{com.baidu.mtc.new_monkey.test/android.support.test.runner.AndroidJUnitRunner}:
文件名:uninstall.log 第219行: 01-12 11:16:33.383 W/ActivityManager( 1068): Error shutting down UiAutomationConnection
文件名:logcat.log 第31653行: 01-12 11:13:48.556 E/Gn_Assist(17385): GnVoiceService dispatchRecoError className is empty
文件名:logcat.log 第31654行: 01-12 11:13:48.556 E/Gn_Assist(17385): FocusException getErrorMsg ERROR_NO_MATCH
文件名:install.log 第26514行: 01-12 11:09:40.641 W/System.err(14314):  Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available

以上这篇Python 过滤错误log并导出的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python常用算法学习基础教程
Apr 13 Python
python并发2之使用asyncio处理并发
Dec 21 Python
Tensorflow之构建自己的图片数据集TFrecords的方法
Feb 07 Python
python中返回矩阵的行列方法
Apr 04 Python
Python输出\u编码将其转换成中文的实例
Dec 15 Python
python实现生成字符串大小写字母和数字的各种组合
Jan 01 Python
Python实现直播推流效果
Nov 26 Python
Python数据可视化处理库PyEcharts柱状图,饼图,线性图,词云图常用实例详解
Feb 10 Python
使用python绘制cdf的多种实现方法
Feb 25 Python
Python实现初始化不同的变量类型为空值
Jun 02 Python
PyTorch实现重写/改写Dataset并载入Dataloader
Jul 14 Python
Python经典五人分鱼实例讲解
Jan 04 Python
python3 pathlib库Path类方法总结
Dec 26 #Python
python3实现在二叉树中找出和为某一值的所有路径(推荐)
Dec 26 #Python
Pytorch中Tensor与各种图像格式的相互转化详解
Dec 26 #Python
基于h5py的使用及数据封装代码
Dec 26 #Python
python深copy和浅copy区别对比解析
Dec 26 #Python
详解python opencv、scikit-image和PIL图像处理库比较
Dec 26 #Python
torch 中各种图像格式转换的实现方法
Dec 26 #Python
You might like
落伍首发 php+mysql 采用ajax技术的 省 市 地 3级联动无刷新菜单 源码
2006/12/16 PHP
PHP类与对象中的private访问控制的疑问
2012/11/01 PHP
使用php+apc实现上传进度条且在IE7下不显示的问题解决方法
2013/04/25 PHP
php 模拟post_验证页面的返回状态(实例讲解)
2013/10/28 PHP
PHP读取RSS(Feed)简单实例
2014/06/12 PHP
PHP+shell实现多线程的方法
2015/07/01 PHP
Linux系统中设置多版本PHP共存配合Nginx服务器使用
2015/12/21 PHP
详解WordPress中调用评论模板和循环输出评论的PHP函数
2016/01/05 PHP
PHP实现163邮箱自动发送邮件
2016/03/29 PHP
关于document.cookie的使用javascript
2008/04/11 Javascript
JavaScript中为元素加上name属性的方法
2011/05/09 Javascript
关于递归运算的顺序测试代码
2011/11/30 Javascript
js之ActiveX控件使用说明 new ActiveXObject()
2014/03/03 Javascript
分析了一下JQuery中的extend方法实现原理
2015/02/27 Javascript
jQuery插件ajaxFileUpload实现异步上传文件效果
2015/04/14 Javascript
PhantomJS快速入门教程(服务器端的 JavaScript API 的 WebKit)
2015/08/06 Javascript
Bootstrap项目实战之首页内容介绍(全)
2016/04/25 Javascript
Document.body.scrollTop的值总为零的快速解决办法
2016/06/09 Javascript
Vue.js 2.0 移动端拍照压缩图片预览及上传实例
2017/04/27 Javascript
swiper.js插件实现pc端文本上下滑动功能示例
2018/12/03 Javascript
微信小程序判断页面是否从其他页面返回的实例代码
2019/07/03 Javascript
python 串口读取+存储+输出处理实例
2019/12/26 Python
Windows下实现将Pascal VOC转化为TFRecords
2020/02/17 Python
判断Threading.start新线程是否执行完毕的实例
2020/05/02 Python
详解python程序中的多任务
2020/09/16 Python
python pip如何手动安装二进制包
2020/09/30 Python
css3的transition属性详解
2014/12/15 HTML / CSS
HTML5 背景的显示区域实现
2020/07/09 HTML / CSS
荷兰男士时尚网上商店:Suitable
2017/12/25 全球购物
Book Depository澳大利亚:世界领先的专业在线书店之一
2018/12/27 全球购物
前台文员职责范本
2014/03/07 职场文书
2014年安全保卫工作总结
2014/11/13 职场文书
2014年煤矿工人工作总结
2014/12/08 职场文书
公司岗位说明书
2015/10/08 职场文书
从np.random.normal()到正态分布的拟合操作
2021/06/02 Python
Python中json.load()和json.loads()有哪些区别
2021/06/07 Python