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登录Dr.com思路以及代码分享
Jun 25 Python
python实现udp数据报传输的方法
Sep 26 Python
Python3调用微信企业号API发送文本消息代码示例
Nov 10 Python
Python numpy 点数组去重的实例
Apr 18 Python
对Python 网络设备巡检脚本的实例讲解
Apr 22 Python
Python实现获取前100组勾股数的方法示例
May 04 Python
Python运维开发之psutil库的使用详解
Oct 18 Python
对Python中list的倒序索引和切片实例讲解
Nov 15 Python
Python的Lambda函数用法详解
Sep 03 Python
如何在python中实现随机选择
Nov 02 Python
Python基础之进程详解
May 21 Python
尝试使用Python爬取城市租房信息
Apr 12 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
一个阿拉伯数字转中文数字的函数
2006/10/09 PHP
修改ThinkPHP缓存为Memcache的方法
2014/06/25 PHP
php+flash+jQuery多图片上传源码分享
2020/07/27 PHP
php将print_r处理后的数据还原为原始数组的解决方法
2016/11/02 PHP
php让json_encode不自动转义斜杠“/”的方法
2020/04/27 PHP
Avengerls vs Newbee BO3 第三场2.18
2021/03/10 DOTA
关于Aptana Studio生成自动备份文件的解决办法
2009/12/23 Javascript
jquery键盘事件介绍
2011/01/31 Javascript
jquery移除button的inline onclick事件(已测试及兼容浏览器)
2013/01/25 Javascript
jQuery通过控制节点实现仅在前台通过get方法完成参数传递
2015/02/02 Javascript
javascript正则表达式基础知识入门
2015/04/20 Javascript
js父页面中使用子页面的方法
2016/01/09 Javascript
jquery.qtip提示信息插件用法简单实例
2016/06/17 Javascript
jquery UI Datepicker时间控件冲突问题解决
2016/12/16 Javascript
Angular获取手机验证码实现移动端登录注册功能
2017/05/17 Javascript
nuxt中使用路由守卫的方法步骤
2019/01/27 Javascript
详解微信小程序-扫一扫 wx.scanCode() 扫码大变身
2019/04/30 Javascript
vue实现表单录入小案例
2019/09/27 Javascript
vue+element 实现商城主题开发的示例代码
2020/03/26 Javascript
JavaScript常用工具函数汇总(浏览器环境)
2020/09/17 Javascript
js实现星星海特效的示例
2020/09/28 Javascript
基于JavaScript实现简单抽奖功能代码实例
2020/10/20 Javascript
[01:02:05]LGD vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
微信跳一跳python代码实现
2018/01/05 Python
教你使用python实现微信每天给女朋友说晚安
2018/03/23 Python
在matplotlib中改变figure的布局和大小实例
2020/04/23 Python
Python logging模块handlers用法详解
2020/08/14 Python
纯DOM+CSS3实现简单的小风车动画
2016/09/27 HTML / CSS
Foot Locker澳洲官网:美国运动服和鞋类零售商
2019/10/11 全球购物
abstract是什么意思
2012/02/12 面试题
化工专业推荐信范文
2013/11/28 职场文书
2014年教师业务学习材料
2014/05/12 职场文书
大学生求职信例文
2014/06/29 职场文书
医院财务人员岗位职责
2015/04/14 职场文书
廉洁自律承诺书范文
2015/04/28 职场文书
CentOS安装Nginx并部署vue
2022/04/12 Servers