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 相关文章推荐
pygame播放音乐的方法
May 19 Python
python实现感知器
Dec 19 Python
详解Python 协程的详细用法使用和例子
Jun 15 Python
python获取命令行输入参数列表的实例代码
Jun 23 Python
详解python3中的真值测试
Aug 13 Python
解决pycharm py文件运行后停止按钮变成了灰色的问题
Nov 29 Python
python的set处理二维数组转一维数组的方法示例
May 31 Python
python批量修改图片尺寸,并保存指定路径的实现方法
Jul 04 Python
python如何将两个txt文件内容合并
Oct 18 Python
Python Numpy中数据的常用保存与读取方法
Apr 01 Python
python如何实时获取tcpdump输出
Sep 16 Python
详细介绍python类及类的用法
May 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验证信用卡卡号是否正确函数
2015/05/27 PHP
刷新PHP缓冲区为你的站点加速
2015/10/10 PHP
ThinkPHP框架实现数据增删改
2017/05/07 PHP
ThinkPHP框架实现的微信支付接口开发完整示例
2019/04/10 PHP
Thinkphp5框架ajax接口实现方法分析
2019/08/28 PHP
javascript Prototype 对象扩展
2009/05/15 Javascript
Javascript 网页水印(非图片水印)实现代码
2010/03/01 Javascript
JS鼠标事件大全 推荐收藏
2011/11/01 Javascript
Javascript 颜色渐变效果的实现代码
2013/10/01 Javascript
jQuery定义背景动态切换效果的方法
2015/03/23 Javascript
AngularJS模块管理问题的非常规处理方法
2015/04/29 Javascript
JavaScript中Null与Undefined的区别解析
2015/06/30 Javascript
jquery判断页面网址是否有效的两种方法
2016/12/11 Javascript
利用Angular.js编写公共提示模块的方法教程
2017/05/28 Javascript
通过命令行生成vue项目框架的方法
2017/07/12 Javascript
Angular实现下拉框模糊查询功能示例
2018/01/03 Javascript
Vue使用json-server进行后端数据模拟功能
2018/04/17 Javascript
JavaScript中this关键字用法实例分析
2018/08/24 Javascript
[01:35]2014DOTA2西雅图邀请赛 专访狐狸妈青春献给刀塔
2014/07/08 DOTA
Python中Continue语句的用法的举例详解
2015/05/14 Python
Python使用pandas处理CSV文件的实例讲解
2018/06/22 Python
Django2.1集成xadmin管理后台所遇到的错误集锦(填坑)
2018/12/20 Python
python flask 如何修改默认端口号的方法步骤
2019/07/12 Python
Python paramiko模块使用解析(实现ssh)
2019/08/30 Python
解决python和pycharm安装gmpy2 出现ERROR的问题
2020/08/28 Python
CSS3 实用技巧:实现黑白图像效果示例代码
2013/07/11 HTML / CSS
八皇后问题,输出了所有情况,不过有些结果只是旋转了90度
2016/08/15 面试题
什么是SQL Server的确定性函数和不确定性函数
2016/08/04 面试题
计算机专业学生求职信分享
2013/12/15 职场文书
2014年社区学雷锋活动总结
2014/03/09 职场文书
环保建议书100字
2014/05/14 职场文书
财务会计专业求职信
2014/06/09 职场文书
北京颐和园导游词
2015/01/30 职场文书
上课迟到检讨书范文
2015/05/06 职场文书
python实现股票历史数据可视化分析案例
2021/06/10 Python
python中的装饰器该如何使用
2021/06/18 Python