999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Android日志過濾器中正則表達(dá)式的應(yīng)用

2021-06-28 12:24:00趙書慧
電子測試 2021年2期
關(guān)鍵詞:程序信息

趙書慧

(遼寧石化職業(yè)技術(shù)學(xué)院,遼寧錦州,121001)

0 引言

Android Studio應(yīng)用程序調(diào)試過程中,打印出來的日志里邊有很多不明不白的信息,影響我們查看日志的效率。能正確的定位錯誤和找到自己需要的日志信息是一件很幸福的事,要想辦法把不需要的日志給屏蔽掉,Logcat Filter能夠完美勝任這個功能。在日志過濾器中運用正則表達(dá)式可以保留自己想要的日志信息或過濾掉無用的日志信息,使用轉(zhuǎn)義字符或特殊字符序列來描述具有特定含義的過濾條件。

1 Android studio中的正則表達(dá)式

正則表達(dá)式(通常縮寫成“regex”)是一種可用于字符串模式匹配和字符串替換的強有力的工具。如果我們要查找的字符串是具體而完整的, 則直接用這個字符串進行查找即可。但一般情況下,我們對要查找的內(nèi)容只有一個模糊的印象,模糊查找則要使用正則表達(dá)式。在Android中“*”號并不會匹配任意字符,“.”號才匹配任意字符一次, Android studio的正則表達(dá)式和shell中的正則表達(dá)式是一致的,常用重點符號有:

(1).*表示匹配任意字符>=0次,

(2).?匹配任意字符0次或1次,

(3).+匹配任意字符1次或多次,

(4) 用$標(biāo)識匹配的結(jié)束,用^表示匹配的開始,

(5) 用 | 表示匹配關(guān)系的或,當(dāng)不同的log沒有相同的過濾條件,又想一次性過濾出來,| 可以多次使用。

2 Android日志過濾器的使用方法

Logcat是學(xué)習(xí)Android過程中的一個重要的調(diào)試工具,用來獲取系統(tǒng)日志信息的。日志工具類Log提供了5個方法供用戶打印日志,按照級別從低到高排列如下:

Log.v()對應(yīng)級別verbose,用來記錄詳細(xì)信息,打印所有的意義最小的日志信息。

Log.d()對應(yīng)級別debug,用來記錄調(diào)試信息。

Log.i()對應(yīng)級別info,記錄通告信息的,用于打印一些比較重要的信息,程序中常用的是調(diào)試和通告這兩種方法,可以幫助用戶分析行為的數(shù)據(jù)。

Log.w()對應(yīng)級別warn,記錄警告信息的,提示程序在這個地方可能會有潛在的風(fēng)險。

Log.e()對應(yīng)級別error,記錄錯誤信息的,通常代表程序出現(xiàn)了嚴(yán)重問題,必須盡快修復(fù)。

可以在Logcat中的“日志級別”下拉列表中進行級別選擇,默認(rèn)級別是最小的級別信息Verbose,如圖1所示。級別高于所選類型的信息也會在Logcat中顯示出來,級別低于所選類型的信息則不會被顯示,所以只是用日志級別過濾的信息是有限的。

圖1 Logcat

上面的5個方法每個方法會有不同的重載,但通常情況下有兩個參數(shù),第一個參數(shù)是日志標(biāo)簽TAG(可以是一個字符串,也可以定義一個常量用來標(biāo)記),主要用于對日志信息進行過濾;第二個參數(shù)是實際的信息內(nèi)容msg,這兩個參數(shù)都是字符串類型的數(shù)據(jù)。程序運行到我們設(shè)置的“日志點”時,在Logcat中查找相應(yīng)位置的日志信息時,就可以根據(jù)“日志點”顯示的信息是否存在,或與我們預(yù)期在方法中設(shè)置的信息的內(nèi)容是否一致來判斷程序運行到該位置之前是否存在錯誤,迅速找到錯誤的“出事地點”。

運行Android程序的時候,即使事先選擇了某個日志信息的級別,產(chǎn)生的日志信息還是很多。這時就要用到Logcat提供的“過濾”功能了,單擊圖1右上角“日志過濾器”下拉列表框,選擇Edit Filter Configuration打開Creat New Logcat Filter對話框(如圖2)添加、刪除、編輯日志過濾器。可以根據(jù)日志信息的標(biāo)簽(Tag)、信息的內(nèi)容(Message)、日志包名、產(chǎn)生日志的進程編號(PID)或者信息等級(Level),對顯示的日志內(nèi)容進行過濾。單擊對話框左上角的“+”號,添加一個名為data的過濾器,過濾條件設(shè)置為AAA,打印出來的日志就只有標(biāo)簽為“AAA”的有限幾條了。根據(jù)自己應(yīng)用程序的包名在Logcat里邊自己創(chuàng)建一個過濾器,這樣不管系統(tǒng)是否給你創(chuàng)建過濾器,都能打印出和自己應(yīng)用相關(guān)的日志。

圖2 創(chuàng)建新的日志過濾器對話框

3 日志過濾器中使用正則表達(dá)式

打印的Log有兩部分,一是Tag,二是Message。由于Message一般是不固定的,所以還是愉快地用Tag作例子來過濾無關(guān)的Log吧。假設(shè)我們要保留的Tag是“AAA”,那么在Create New Logcat Filter對話框中,Log Tag欄輸入“AAA"即可。如果是保留多個呢?假設(shè)除了標(biāo)簽“AAA”,還要保留標(biāo)簽“BBB”, 這個時候就要用到正則表達(dá)式了,只需要在圖2中勾選Log Tag欄位后面的Regex復(fù)選框,過濾器的Log Tag位置更改為“AAA|BBB”即可,這是使用正則表達(dá)式中最簡單的“或”關(guān)系。也可以輸入“(A|B){3,}”,其中{3,}表示匹配前面字符的次數(shù)最少是3次。

(1)只保留特定的log

若想知道每條日志的Tag是什么,觀察一下打印出來的日志:

2020-08-22 10:02:44.171 26112-26112/com.example.logtest I/AAA: onStart

對應(yīng)格式如下:

date time PID-TID/package priority/tag: message

所以只要看到日志,就能根據(jù)位置知道該日志的Tag和Message。這里,PID 代表進程標(biāo)識符;TID 則為線程標(biāo)識符,如果僅有一個線程,兩者可以相同;package是包名;tag是日志標(biāo)簽;message是日志信息內(nèi)容。過濾出指定Tag的日志信息,其正則表達(dá)式可以寫成:^(?:tag1|tag2|tag3)

(2)忽略特定的log

在Log Tag中輸入正則表達(dá)式:^(?!.*(AAA)).*$

用^表示匹配的開始,用$標(biāo)識匹配的結(jié)束,!表示否定,其中AAA是要忽略掉的Tag,表示除了標(biāo)簽AAA之外的日志信息全部要顯示。例如: 忽略指定tag的日志信息可以寫成:^(?!tag1|tag2|tag3)

(3)除了可以在日志過濾器中使用正則表達(dá)式對特定的log進行過濾或忽略,也可以在圖1中的“關(guān)鍵字過濾”文本搜索框中直接輸入字符串或正則表達(dá)式,但關(guān)鍵字過濾時不區(qū)分Tag和Message。

4 結(jié)束語

程序開發(fā)過程中出現(xiàn)錯誤是不可避免的,錄入程序時開發(fā)環(huán)境即時可以檢測語法錯誤,并及時提示我們錯誤的位置以及修改的方法,但是邏輯錯誤的定位和分析是一件非常困難的事情。當(dāng)程序打印出成百上千行日志的時候,就會迫切的需要日志過濾器了。Android應(yīng)用程序中會包含很多的類名,通常會為每個類名設(shè)置一個常量TAG,根據(jù)TAG用日志過濾器篩選出自己想要看到的日志內(nèi)容。如果要打印多個類的日志內(nèi)容就要使用正則表達(dá)式,在日志過濾器中使用正則表達(dá)式可以讓用戶通過使用特定字符構(gòu)建查詢模式,其所提供的強大的模式匹配功能大大簡化了日志篩選工作。當(dāng)然,也只有通過不斷地實際使用的過程,反復(fù)運用和精通正則表達(dá)式的所有特殊字符,才能真正體會到運用正則表達(dá)式在日志過濾中的優(yōu)越性,為程序的調(diào)試提供強有力的支持。

猜你喜歡
程序信息
試論我國未決羈押程序的立法完善
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
英國與歐盟正式啟動“離婚”程序程序
創(chuàng)衛(wèi)暗訪程序有待改進
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
恐怖犯罪刑事訴訟程序的完善
信息
健康信息
祝您健康(1987年3期)1987-12-30 09:52:32
主站蜘蛛池模板: 无码一区二区波多野结衣播放搜索| 亚洲天堂视频在线观看免费| 欧美一区二区福利视频| 久久综合干| 亚洲婷婷丁香| 亚洲欧洲综合| 国产成人精品无码一区二| 国产精品第三页在线看| 成人午夜亚洲影视在线观看| 噜噜噜久久| 无码一区中文字幕| 成年午夜精品久久精品| 久久香蕉国产线| 亚洲AⅤ无码国产精品| 欧美一区二区自偷自拍视频| 国产欧美日韩免费| 国产一二三区视频| 国产精品爆乳99久久| 亚洲国产欧美国产综合久久| 亚洲天堂精品在线观看| 国产一级毛片网站| av在线无码浏览| 日本一区二区三区精品AⅤ| 欧美在线一二区| 最新痴汉在线无码AV| 亚洲码一区二区三区| 国产欧美日韩视频怡春院| 亚洲AV无码精品无码久久蜜桃| 亚洲经典在线中文字幕| 中文字幕1区2区| 无码精品福利一区二区三区| 亚洲一级毛片在线播放| jizz在线观看| 天天干天天色综合网| 精品视频免费在线| 久久中文字幕不卡一二区| 欧美激情第一欧美在线| 三级视频中文字幕| 片在线无码观看| 国产一级一级毛片永久| 视频二区欧美| 91小视频在线观看| 亚洲免费毛片| 手机精品福利在线观看| 91口爆吞精国产对白第三集 | 欧美丝袜高跟鞋一区二区 | 欧美在线导航| 久久综合婷婷| 亚洲成人精品| 久久国产精品影院| 婷婷六月综合网| 精品视频福利| 四虎精品国产AV二区| 国产免费人成视频网| 最新国产在线| 国产另类视频| 丝袜国产一区| 99精品热视频这里只有精品7| 久久中文字幕2021精品| 国产美女免费| 国产乱码精品一区二区三区中文 | 国产一区二区三区夜色| 精品人妻一区二区三区蜜桃AⅤ| 制服丝袜无码每日更新| 国产精品密蕾丝视频| 高清无码手机在线观看| 国产精品露脸视频| 久久精品66| 91在线播放国产| 午夜国产小视频| 国产主播一区二区三区| www.精品国产| 成人毛片在线播放| 又猛又黄又爽无遮挡的视频网站| 99福利视频导航| 国产一区二区三区精品久久呦| a毛片免费在线观看| 国模私拍一区二区 | 国产成人高清在线精品| 老司机精品一区在线视频| 精品国产亚洲人成在线| 国产成年女人特黄特色毛片免|