Python 过滤错误log并导出的实例
前言:
测试过程中获取App相关log后,如何快速找出crash的部分,并导出到新的文件呢?
感兴趣的话,继续往下看吧~
思路:遍历多个日志文件,找出含有Error和Crash的日志,并把该行日志输出到另一个文件result.txt中。
deffind_log(path): file_list=os.listdir(path) forfileinfile_list: file_name=file log_path=os.path.join(path,file) withopen(log_path,'rb')asf: lines=f.readlines() index=0 forlineinlines: index+=1 if'Crash'inline.decode("utf8","ignore")or'Error'inline.decode("utf8","ignore"): ss=re.findall(r'(.*Crash.*)',line.decode("utf8","ignore")) zz=re.findall(r'(.*Error.*)',line.decode("utf8","ignore")) iflen(zz)>0: withopen('result.txt','a')asff: ff.write('文件名:'+file_name+'第'+str(index)+'行:'+zz[0]+'\n') eliflen(ss)>0: withopen('result.txt','a')asff: ff.write('文件名:'+file_name+'第'+str(index)+'行:'+ss[0]+'\n') else: break
result.txt文件展示如下:
文件名:amstart.log第611行:01-1211:10:33.534E/FirebaseCrash(14844):Failedwaitingforcrashapitoload. 文件名:amstart.log第612行:01-1211:10:33.534E/FirebaseCrash(14844):java.lang.InterruptedException 文件名:amstart.log第613行:01-1211:10:33.534E/FirebaseCrash(14844):atjava.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedNanos(AbstractQueuedSynchronizer.java:1013) 文件名:amstart.log第614行:01-1211:10:33.534E/FirebaseCrash(14844):atjava.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1302) 文件名:amstart.log第615行:01-1211:10:33.534E/FirebaseCrash(14844):atjava.util.concurrent.CountDownLatch.await(CountDownLatch.java:249) 文件名:amstart.log第616行:01-1211:10:33.534E/FirebaseCrash(14844):atcom.google.firebase.crash.FirebaseCrash.zzbsk(UnknownSource) 文件名:amstart.log第617行:01-1211:10:33.534E/FirebaseCrash(14844):atcom.google.firebase.crash.FirebaseCrash.zza(UnknownSource) 文件名:amstart.log第618行:01-1211:10:33.534E/FirebaseCrash(14844):atcom.google.firebase.crash.zza.run(UnknownSource) 文件名:amstart.log第619行:01-1211:10:33.534E/FirebaseCrash(14844):atjava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 文件名:amstart.log第620行:01-1211:10:33.534E/FirebaseCrash(14844):atjava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 文件名:amstart.log第621行:01-1211:10:33.534E/FirebaseCrash(14844):atjava.lang.Thread.run(Thread.java:818) 文件名:uninstall.log第213行:01-1211:16:33.382W/ActivityManager(1068):Errorinappcom.baidu.mtc.new_monkeyrunninginstrumentationComponentInfo{com.baidu.mtc.new_monkey.test/android.support.test.runner.AndroidJUnitRunner}: 文件名:uninstall.log第219行:01-1211:16:33.383W/ActivityManager(1068):ErrorshuttingdownUiAutomationConnection 文件名:logcat.log第31653行:01-1211:13:48.556E/Gn_Assist(17385):GnVoiceServicedispatchRecoErrorclassNameisempty 文件名:logcat.log第31654行:01-1211:13:48.556E/Gn_Assist(17385):FocusExceptiongetErrorMsgERROR_NO_MATCH 文件名:install.log第26514行:01-1211:09:40.641W/System.err(14314):Causedby:java.lang.NoClassDefFoundError:Classnotfoundusingthebootclassloader;nostacktraceavailable
以上这篇Python过滤错误log并导出的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。