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的函数嵌套的使用方法
Jan 24 Python
Python中的random()方法的使用介绍
May 15 Python
Python中遍历字典过程中更改元素导致异常的解决方法
May 12 Python
python与caffe改变通道顺序的方法
Aug 04 Python
python使用turtle绘制国际象棋棋盘
May 23 Python
Python学习笔记之函数的定义和作用域实例详解
Aug 13 Python
浅谈Keras中shuffle和validation_split的顺序
Jun 19 Python
Python自带的IDE在哪里
Jul 01 Python
Python grequests模块使用场景及代码实例
Aug 10 Python
常用的10个Python实用小技巧
Aug 10 Python
利用Python实现朋友圈中的九宫格图片效果
Sep 03 Python
python hmac模块验证客户端的合法性
Nov 07 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/08/03 PHP
yii2缓存Caching基本用法示例
2016/07/18 PHP
Windows平台实现PHP连接SQL Server2008的方法
2017/07/26 PHP
PHP PDOStatement::bindParam讲解
2019/01/30 PHP
[IE&FireFox兼容]JS对select操作
2007/01/07 Javascript
基于jquery的从一个页面跳转到另一个页面的指定位置的实现代码(带平滑移动的效果)
2011/05/24 Javascript
cnblogs 代码高亮显示后的代码复制问题解决实现代码
2011/12/14 Javascript
基于jQuery的弹出框插件
2012/03/18 Javascript
使用jQuery插件创建常规模态窗口登陆效果
2013/08/23 Javascript
javascript判断两个IP地址是否在同一个网段的实现思路
2013/12/13 Javascript
node.js插件nodeclipse安装图文教程
2020/10/19 Javascript
浅谈window.onbeforeunload() 事件调用ajax
2016/06/29 Javascript
浅谈jQuery中ajaxPrefilter的应用
2016/08/01 Javascript
JQuery获取鼠标进入和离开容器的方向
2016/12/29 Javascript
js实现图片放大展示效果
2017/08/30 Javascript
node+koa实现数据mock接口的方法
2017/09/20 Javascript
js replace替换字符串同时替换多个方法
2018/11/27 Javascript
JS实现从对象获取对象中单个键值的方法示例
2019/06/05 Javascript
Vue实现简易购物车页面
2020/12/30 Vue.js
Django接受前端数据的几种方法总结
2016/11/04 Python
Python 搭建Web站点之Web服务器与Web框架
2016/11/06 Python
Python+OpenCv制作证件图片生成器的操作方法
2019/08/21 Python
Pytorch修改ResNet模型全连接层进行直接训练实例
2019/09/10 Python
python求一个字符串的所有排列的实现方法
2020/02/04 Python
Python面向对象程序设计之私有变量,私有方法原理与用法分析
2020/03/23 Python
一名毕业生的自我鉴定
2013/12/04 职场文书
创业计划书怎样才能打动风投
2014/01/01 职场文书
便利店投资创业计划书
2014/02/08 职场文书
协议书范本
2014/04/23 职场文书
禁毒宣传标语
2014/06/19 职场文书
单位实习鉴定评语
2015/01/04 职场文书
雷锋的观后感
2015/06/10 职场文书
2019年中,最受大众欢迎的6本新书
2019/08/07 职场文书
理解深度学习之深度学习简介
2021/04/14 Python
Python实现视频自动打码的示例代码
2022/04/08 Python
Java对文件的读写操作方法
2022/04/29 Java/Android