Python 過濾錯誤log並匯出的例項
阿新 • • 發佈:2020-01-09
前言:
測試過程中獲取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.*)',"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並匯出的例項就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。