如何過濾Android offline log

2021-08-31 11:10:04 字數 2847 閱讀 3657

【**】

作為android 工程師,在日常工作中每天會讀log,分析log.由於android 的所有log 都是存放在乙個檔案當中(除了radio.event之外),所以log 檔案會非常大。在這數以千行甚至上萬的log中,往往開發人員真正需要的log被分散到不同的地方,開發人員可以利用編輯器的查詢功能來找到所要關心的某個tag資訊,但是如果開發人員關心的不止乙個tag的信心,看log就顯得比較費勁了。

舉例說明:

在下面的logcat log中,開發人員只想關注database 和 dalvikvm的資訊,一般情況下,只能先查詢database所在的行,把游標調到所在行之後,再翻頁檢視dalvikvm的資訊,效率很低。

[ 01-01 08:02:56.197 1304:0x518 d/servo ]

[servosearchreceiver]:received intent: /data/data/oms.mobilewidget.provider/databases/widgets.db$widgets$2-18$23, com.db4o.ser\

vo.sqlite_change

[ 01-01 08:02:56.260 1313:0x55d d/database ]

sqlite change intent sent

[ 01-01 08:02:56.502 1412:0x58c d/dalvikvm ]

gc_for_malloc freed 12134 objects / 477880 bytes in 81ms

[ 01-01 08:02:57.096 1412:0x58c d/dalvikvm ]

gc_for_malloc freed 12926 objects / 501824 bytes in 79ms

[ 01-01 08:02:57.268 1313:0x55d d/database ]

prepare to send intent for sqlite change in thread:1373

[ 01-01 08:02:57.268 1313:0x55d w/database ]

no any recorded row id found in sqlite change event

[ 01-01 08:02:57.697 1412:0x58c d/dalvikvm ]

gc_for_malloc freed 13913 objects / 532496 bytes in 84ms

[ 01-01 08:02:58.041 1412:0x58c w/widgetpackagezip ]

failed to find file (signature.xml) in widget package

[ 01-01 08:02:58.213 1017:0x40c d/statusbarpolicy ]

mservicestate:null, msignalstrength:signalstrength: 14 -1 -1 -1 -1 -1 -1 gsm

[ 01-01 08:02:58.346 1412:0x58c d/dalvikvm ]

gc_for_malloc freed 13759 objects / 556592 bytes in 103ms

[ 01-01 08:02:58.580 1412:0x58c d/dalvikvm ]

gc_for_malloc freed 9207 objects / 388832 bytes in 74ms

....

[ 01-01 08:02:59.768 1313:0x527 v/widget provider ]

query url = content://widgetmanager/widget/featurelist

[ 01-01 08:02:59.768 1313:0x527 v/widget provider ]

query match result = 18

[ 01-01 08:02:59.994 1017:0x491 v/alarmmanager ]

[ 01-01 08:03:00.002 1017:0x40c v/alarmmanager ]

[ 01-01 08:03:00.010 1017:0x40c i/keyguardupdatemonitor ]

keyguardupdatemonitor, onreceive broadcast, action=android.intent.action.time_tick

[ 01-01 08:03:00.072 1412:0x58c d/dalvikvm ]

gc_for_malloc freed 8506 objects / 410768 bytes in 131ms

[ 01-01 08:03:00.315 1390:0x56e d/[dcd3.0] ]

[dcdcmservice:] signal down

[ 01-01 08:03:00.330 1345:0x5d6 d/mediaprovider ]

[getkeyidforname] so=notifications

為此,我用python寫了乙個filter 過濾程式,能夠很方便的過濾出想要的tag log.而且還支援tag資訊包括多行的情況。

用法如下:

python oms_filter.py [tag1] [tag2] [tag3] .....

例如:python oms_filter.py logcat.log mediaprovider kernel mediascanner

會把 mediaprovider kernel mediascanner 這三個tag的log過濾出來,並且順序也保持原有log的順序。

可以用下面的命令把oms_filter.py從網上得到。

svn export

SpringMVC是如何過濾json資料的

rt,比如我想將user物件轉換成json資料給前台,但是有一些user的屬性我不想給前台,例如密碼,建立日期等等,springmvc是如何實現的 propertyfilter propertyfilter newpropertyfilter returnfalse this.outjson res...

過濾列名如何注入dump資料

這是乙個非常神奇的東西,在做lctf中大牛提及的ddctf2017中的乙個題目,廢話不多少,直接放出來效果及其利用語句 mysql select from select 1 a,select 2 b,select 3 c 1 2 3 1 2 3 1 row in set 0.14 sec mysql...

sql 如何過濾重覆記錄

請各位大俠幫忙了 問題1 對於以下幾個記錄 id123456 123123 123456 123456 123789 所有執行完sql後的結果順序與原id順序相同,另外由於涉及到數十萬條記錄的操作,要求速度要快 要求結果1 去除重複id,顯示記錄結果為 123456 123123 123789 要求...