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持久性管理pickle模块详细介绍
Feb 18 Python
python爬取酷狗音乐排行榜
Feb 20 Python
对python中UDP,socket的使用详解
Aug 22 Python
python BlockingScheduler定时任务及其他方式的实现
Sep 19 Python
Django restframework 框架认证、权限、限流用法示例
Dec 21 Python
使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例
Mar 16 Python
在Ubuntu 20.04中安装Pycharm 2020.1的图文教程
Apr 30 Python
基于Python中random.sample()的替代方案
May 23 Python
python如何调用java类
Jul 05 Python
Python selenium模块实现定位过程解析
Jul 09 Python
关于django python manage.py startapp 应用名出错异常原因解析
Dec 15 Python
OpenCV-Python 实现两张图片自动拼接成全景图
Jun 11 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
将兴奋、喜悦和坎加斯带到戴安娜:亚马逊公主
2020/03/03 欧美动漫
咖啡磨器 如何选购一台适合家用的意式磨豆机
2021/03/05 新手入门
mysql5详细安装教程
2007/01/15 PHP
PHP 写文本日志实现代码
2010/05/18 PHP
PHP中PDO的事务处理分析
2016/04/07 PHP
php操纵mysqli数据库的实现方法
2016/09/18 PHP
PHP实现根据密码长度显示安全条
2017/07/04 PHP
php 中phar包的使用教程详解
2018/10/26 PHP
js写的评论分页(还不错)
2013/12/23 Javascript
jquery获取当前点击对象的value方法
2014/02/28 Javascript
jQuery循环滚动新闻列表示例代码
2014/06/17 Javascript
JavaScript DOM节点添加示例
2014/07/16 Javascript
JavaScript学习笔记之定时器
2015/01/22 Javascript
JavaScript实现算术平方根算法-代码超简单
2015/09/11 Javascript
jQuery实现的仿百度分页足迹效果代码
2015/10/30 Javascript
vue.js动态数据绑定学习笔记
2017/05/19 Javascript
JS实现在文本指定位置插入内容的简单示例
2017/12/22 Javascript
Vuejs 单文件组件实例详解
2018/02/09 Javascript
详解Node.js中path模块的resolve()和join()方法的区别
2018/10/29 Javascript
通过实例了解js函数中参数的传递
2019/06/15 Javascript
JS array数组检测方式解析
2020/05/19 Javascript
python获得两个数组交集、并集、差集的方法
2015/03/27 Python
win7+Python3.5下scrapy的安装方法
2018/07/31 Python
python hough变换检测直线的实现方法
2019/07/12 Python
django自定义非主键自增字段类型详解(auto increment field)
2020/03/30 Python
css3实现针线缝合效果(图解步骤)
2013/02/04 HTML / CSS
CSS3中的常用选择器使用示例整理
2016/06/13 HTML / CSS
详解css3使用transform出现字体模糊的解决办法
2020/10/16 HTML / CSS
数据库设计的包括哪两种,请分别进行说明
2016/07/15 面试题
解释DataSet(ds) 和 ds as DataSet 的含义
2014/07/27 面试题
施工安全标语
2014/06/07 职场文书
教育局党的群众路线教育实践活动整改方案
2014/09/20 职场文书
安全生产工作汇报材料
2014/10/28 职场文书
2014年节能减排工作总结
2014/12/06 职场文书
TensorFlow的自动求导原理分析
2021/05/26 Python
使用react+redux实现计数器功能及遇到问题
2021/06/02 Javascript