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 冒泡,选择,插入排序使用实例
Feb 05 Python
Python实现周期性抓取网页内容的方法
Nov 04 Python
python字符串的方法与操作大全
Jan 30 Python
VSCode下好用的Python插件及配置
Apr 06 Python
基于Django ORM、一对一、一对多、多对多的全面讲解
Jul 26 Python
python批量处理txt文件的实例代码
Jan 13 Python
python3将变量写入SQL语句的实现方式
Mar 02 Python
Django封装交互接口代码
Jul 12 Python
Pycharm快捷键配置详细整理
Oct 13 Python
pycharm配置python 设置pip安装源为豆瓣源
Feb 05 Python
浅谈Python中的正则表达式
Jun 28 Python
Python利用zhdate模块实现农历日期处理
Mar 31 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内存不够用的快速解决方法
2013/10/26 PHP
php中Y2K38的漏洞解决方法实例分析
2014/09/22 PHP
Laravel 5框架学习之表单
2015/04/08 PHP
php实现支持中文的文件下载功能示例
2017/08/30 PHP
js AppendChild与insertBefore用法详细对比
2013/12/16 Javascript
JavaScript中Math对象方法使用概述
2014/01/02 Javascript
js的2种继承方式详解
2014/03/04 Javascript
深入理解JavaScript系列(42):设计模式之原型模式详解
2015/03/04 Javascript
Bootstrap每天必学之模态框(Modal)插件
2016/04/26 Javascript
基于SpringMVC+Bootstrap+DataTables实现表格服务端分页、模糊查询
2016/10/30 Javascript
JavaScrpt的面向对象全面解析
2017/05/09 Javascript
Angular中ng-options下拉数据默认值的设定方法
2017/06/21 Javascript
Angular设置别名alias的方法
2018/11/08 Javascript
js实现一个页面多个倒计时的3种方法
2019/02/25 Javascript
bootstrap table插件动态加载表头
2019/07/19 Javascript
解决layui的使用以及针对select、radio等表单组件不显示的问题
2019/09/05 Javascript
vue 实现特定条件下绑定事件
2019/11/09 Javascript
python list 合并连接字符串的方法
2013/03/09 Python
python根据unicode判断语言类型实例代码
2018/01/17 Python
python编写弹球游戏的实现代码
2018/03/12 Python
python-str,list,set间的转换实例
2018/06/27 Python
Python绘图Matplotlib之坐标轴及刻度总结
2019/06/28 Python
Python实现制度转换(货币,温度,长度)
2019/07/14 Python
Python编写通讯录通过数据库存储实现模糊查询功能
2019/07/18 Python
CSS3实现swap交换动画
2016/01/19 HTML / CSS
使用CSS3制作版头动画效果
2020/12/24 HTML / CSS
世界最大的私人旅行指南出版商:孤独星球
2016/08/23 全球购物
全球最大的在线橄榄球商店:Lovell Rugby
2018/05/20 全球购物
党员个人公开承诺书
2014/08/29 职场文书
群众路线教育实践活动总结
2014/10/30 职场文书
2015年元旦主持词开场白
2014/12/14 职场文书
行政复议决定书
2015/06/24 职场文书
2016年寒假学习心得体会
2015/10/09 职场文书
导游词之无锡唐城
2019/12/12 职场文书
纯html+css实现打字效果
2021/08/02 HTML / CSS
一小时迅速入门Mybatis之bind与多数据源支持 Java API
2021/09/15 Javascript