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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。