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操作MongoDB基础知识
Nov 01 Python
Python使用新浪微博API发送微博的例子
Apr 10 Python
Python中为什么要用self探讨
Apr 14 Python
基于python爬虫数据处理(详解)
Jun 10 Python
对python抓取需要登录网站数据的方法详解
May 21 Python
python保存文件方法小结
Jul 27 Python
对python 读取线的shp文件实例详解
Dec 22 Python
Python redis操作实例分析【连接、管道、发布和订阅等】
May 16 Python
Pytorch 实现自定义参数层的例子
Aug 17 Python
python科学计算之scipy——optimize用法
Nov 25 Python
python批量处理多DNS多域名的nslookup解析实现
Jun 28 Python
python编写扎金花小程序的实例代码
Feb 23 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 CURL模拟GET及POST函数代码
2010/04/25 PHP
PHP类和对象相关系统函数与运算符小结
2016/09/28 PHP
jquery UI 1.72 之datepicker
2009/12/29 Javascript
ExtJs使用IFrame的实现代码
2010/03/24 Javascript
《JavaScript高级程序设计》阅读笔记(一) ECMAScript基础
2012/02/27 Javascript
禁用键盘上的(全局)指定键兼容iE、Chrome、火狐
2013/05/14 Javascript
jQuery判断checkbox(复选框)是否被选中以及全选、反选实现代码
2014/02/21 Javascript
JavaScript对象反射用法实例
2015/04/17 Javascript
javascript中$(function() {});写与不写有哪些区别
2015/08/10 Javascript
JavaScript必知必会(二) null 和undefined
2016/06/08 Javascript
Three.js学习之文字形状及自定义形状
2016/08/01 Javascript
JS动态给对象添加属性和值的实现方法
2016/10/21 Javascript
vue 实现 ios 原生picker 效果及实现思路解析
2017/12/06 Javascript
Vue引入sass并配置全局变量的方法
2018/06/27 Javascript
详解Vue2.0组件的继承与扩展
2018/11/23 Javascript
解决Vue 刷新页面导航显示高亮位置不对问题
2019/12/25 Javascript
vue data变量相互赋值后被实时同步的解决步骤
2020/08/05 Javascript
Vertx基于EventBus发送接受自定义对象
2020/11/16 Javascript
python实现通过代理服务器访问远程url的方法
2015/04/29 Python
在Django的模型中执行原始SQL查询的方法
2015/07/21 Python
pycharm设置鼠标悬停查看方法设置
2019/07/29 Python
修改 CentOS 6.x 上默认Python的方法
2019/09/06 Python
flask 实现token机制的示例代码
2019/11/07 Python
Python魔法方法 容器部方法详解
2020/01/02 Python
python 实现简易的记事本
2020/11/30 Python
HTML5 视频播放(video),JavaScript控制视频的实例代码
2018/10/08 HTML / CSS
耐克中国官方商城:Nike中国
2018/10/18 全球购物
保险公司年会主持词
2014/03/22 职场文书
先进工作者事迹材料
2014/12/23 职场文书
党员自我评价范文2015
2015/03/03 职场文书
试用期工作表现自我评价
2015/03/06 职场文书
考研导师推荐信范文
2015/03/27 职场文书
原告代理词范文
2015/05/25 职场文书
升学宴祝酒词
2015/08/11 职场文书
python程序的组织结构详解
2021/12/06 Python
十大最强火系宝可梦,喷火龙上榜,第一名有双火属性
2022/03/18 日漫