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应用程序在windows下不出现cmd窗口的办法
May 29 Python
python处理csv数据的方法
Mar 11 Python
Python爬取qq music中的音乐url及批量下载
Mar 23 Python
使用 python pyautogui实现鼠标键盘控制功能
Aug 04 Python
python批量处理txt文件的实例代码
Jan 13 Python
Python 文件数据读写的具体实现
Jan 24 Python
完美解决pycharm导入自己写的py文件爆红问题
Feb 12 Python
Django模板标签中url使用详解(url跳转到指定页面)
Mar 19 Python
python selenium xpath定位操作
Sep 01 Python
python 绘制正态曲线的示例
Sep 24 Python
用Python写一个简易版弹球游戏
Apr 13 Python
bat批处理之字符串操作的实现
Mar 16 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编写PDF文档生成器
2006/10/09 PHP
PHP Token(令牌)设计
2008/03/15 PHP
PHP has encountered an Access Violation 错误的解决方法
2010/01/17 PHP
php笔记之常用文件操作
2010/10/12 PHP
php FLEA中二叉树数组的遍历输出
2012/09/26 PHP
探讨:使用XMLSerialize 序列化与反序列化
2013/06/08 PHP
ThinkPHP实现非标准名称数据表快速创建模型的方法
2014/11/29 PHP
document.onreadystatechange事件的用法分析
2009/10/17 Javascript
JavaScript 利用Cookie记录用户登录信息
2009/12/08 Javascript
JavaScript中的常见问题解决方法(乱码,IE缓存,代理)
2013/11/28 Javascript
JS获得浏览器版本和操作系统版本的例子
2014/05/13 Javascript
jQuery ajax调用WCF服务实例
2014/07/16 Javascript
触屏中的JavaScript事件分析
2015/02/06 Javascript
JavaScript性能优化之小知识总结
2015/11/20 Javascript
谈一谈jQuery核心架构设计
2016/03/28 Javascript
微信小程序 教程之引用
2016/10/18 Javascript
jQuery 的 ready()的纯js替代方法
2016/11/20 Javascript
Angular+Bootstrap+Spring Boot实现分页功能实例代码
2017/07/21 Javascript
vue项目前端埋点的实现
2019/03/06 Javascript
JavaScript实现的3D旋转魔方动画效果实例代码
2019/07/31 Javascript
layui动态表头的实现代码
2019/08/22 Javascript
vue v-for直接循环数字实例
2019/11/07 Javascript
[09:34]2018DOTA2国际邀请赛寻真——永不放弃的iG
2018/08/14 DOTA
[59:32]Liquid vs Fnatic 2019国际邀请赛淘汰赛败者组BO1 8.20.mp4
2020/07/19 DOTA
wxPython事件驱动实例详解
2014/09/28 Python
用python写一个windows下的定时关机脚本(推荐)
2017/03/21 Python
Python中的pygal安装和绘制直方图代码分享
2017/12/08 Python
分享Pycharm中一些不为人知的技巧
2018/04/03 Python
在Python中分别打印列表中的每一个元素方法
2018/11/07 Python
很酷的python表白工具 你喜欢我吗
2019/04/11 Python
利用Python优雅的登录校园网
2020/10/21 Python
python爬虫 requests-html的使用
2020/11/30 Python
细说NumPy数组的四种乘法的使用
2020/12/18 Python
人事代理委托书
2014/09/27 职场文书
一文简单了解MySQL前缀索引
2022/04/03 MySQL
Java结构型设计模式之组合模式详解
2022/09/23 Java/Android