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 相关文章推荐
用map函数来完成Python并行任务的简单示例
Apr 02 Python
使用wxPython获取系统剪贴板中的数据的教程
May 06 Python
Python实现的微信公众号群发图片与文本消息功能实例详解
Jun 30 Python
Python多线程应用于自动化测试操作示例
Dec 06 Python
在scrapy中使用phantomJS实现异步爬取的方法
Dec 17 Python
基于PyQt4和PySide实现输入对话框效果
Feb 27 Python
centos7中安装python3.6.4的教程
Dec 11 Python
完美解决pycharm导入自己写的py文件爆红问题
Feb 12 Python
PyQt5中向单元格添加控件的方法示例
Mar 24 Python
python实现坦克大战
Apr 24 Python
解析Python 偏函数用法全方位实现
Jun 26 Python
Python 抓取数据存储到Redis中的操作
Jul 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
QQ登录 PHP OAuth示例代码
2011/07/20 PHP
php解析xml方法实例详解
2015/05/12 PHP
PHP对象克隆clone用法示例
2016/09/28 PHP
linux平台编译安装PHP7并安装Redis扩展与Swoole扩展实例教程
2016/09/30 PHP
PHP实现json_decode不转义中文的方法
2017/05/20 PHP
Yii2.0建立公共方法简单示例
2019/01/29 PHP
一种JavaScript的设计模式
2006/11/22 Javascript
js href的用法
2010/05/13 Javascript
js innerHTML 改变div内容的方法
2013/08/03 Javascript
从jquery的过滤器.filter()方法想到的
2013/09/29 Javascript
浅析return false的正确使用
2013/11/04 Javascript
检测一个函数是否是JavaScript原生函数的小技巧
2015/03/13 Javascript
浅谈javascript语法和定时函数
2015/05/03 Javascript
jQuery拖动元素并对元素进行重新排序
2015/12/30 Javascript
详解Html a标签中href和onclick用法、区别、优先级别
2017/01/16 Javascript
jQuery实现页面倒计时并刷新效果
2017/03/13 Javascript
canvas实现环形进度条效果
2017/03/23 Javascript
JS原型与继承操作示例
2019/05/09 Javascript
利用百度echarts实现图表功能简单入门示例【附源码下载】
2019/06/10 Javascript
python基于BeautifulSoup实现抓取网页指定内容的方法
2015/07/09 Python
Python WXPY实现微信监控报警功能的代码
2017/10/20 Python
python中map的基本用法示例
2018/09/10 Python
python实现的分析并统计nginx日志数据功能示例
2019/12/21 Python
20行Python代码实现视频字符化功能
2020/04/13 Python
美国最大的袜子制造商和零售商:Renfro Socks
2017/09/03 全球购物
餐饮营销方案
2014/02/23 职场文书
电子商务专业毕业生自荐书
2014/06/22 职场文书
财务会计专业自荐书
2014/06/30 职场文书
年度安全生产目标责任书
2014/07/23 职场文书
机动车登记业务委托书
2014/10/08 职场文书
教育见习报告范文
2014/11/03 职场文书
论文答辩开场白大全
2015/05/27 职场文书
仙境之桥观后感
2015/06/16 职场文书
《走遍天下书为侣》教学反思
2016/02/22 职场文书
windows下快速安装nginx并配置开机自启动的方法
2021/05/11 Servers
MYSQL事务的隔离级别与MVCC
2022/05/25 MySQL