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
主站蜘蛛池模板: 亚洲AV无码乱码在线观看裸奔| 国产精品三级av及在线观看| 国产精品视频导航| 97色伦色在线综合视频| 亚洲国产成人无码AV在线影院L| 亚洲视频在线青青| 免费AV在线播放观看18禁强制| 亚洲欧美综合在线观看| 亚洲天堂自拍| 国产第一页免费浮力影院| 国产视频只有无码精品| 欧美成人免费午夜全| 中文无码影院| 国产va在线观看免费| 久夜色精品国产噜噜| 人妻无码中文字幕一区二区三区| 无码视频国产精品一区二区 | 欧美精品黑人粗大| 久久精品娱乐亚洲领先| 日韩欧美91| 色窝窝免费一区二区三区| 欧美h在线观看| 国产人碰人摸人爱免费视频| 中文无码伦av中文字幕| 国产丝袜丝视频在线观看| 日本免费一区视频| 亚洲中久无码永久在线观看软件| 99久久精品免费观看国产| 高清无码一本到东京热| 亚洲伦理一区二区| 六月婷婷激情综合| 99er这里只有精品| 日本AⅤ精品一区二区三区日| 性色生活片在线观看| 亚洲成a人片7777| 黄色成年视频| 国产av无码日韩av无码网站 | 亚洲国语自产一区第二页| 久久99国产乱子伦精品免| 欧美在线视频不卡| 国产精品短篇二区| 日韩精品免费一线在线观看| 国产成年女人特黄特色大片免费| 国精品91人妻无码一区二区三区| 国产va免费精品观看| 久久国产拍爱| 欧美亚洲一区二区三区导航| 日韩av高清无码一区二区三区| 国产人人乐人人爱| 亚洲成人网在线播放| аⅴ资源中文在线天堂| 国产一区二区三区在线精品专区| 久久网欧美| 99免费在线观看视频| 日韩欧美91| 无码内射在线| 欧美色综合网站| 啪啪国产视频| 国产成人精品2021欧美日韩| 强奷白丝美女在线观看| av一区二区三区高清久久| aa级毛片毛片免费观看久| 亚洲一级毛片在线观播放| 四虎永久在线视频| 国产精品一区在线麻豆| 性色一区| 六月婷婷激情综合| 日韩在线网址| 国产激爽大片在线播放| 欧美性爱精品一区二区三区| 国产精鲁鲁网在线视频| 国产不卡网| 久久国产免费观看| 亚洲欧洲自拍拍偷午夜色| 久久精品国产精品青草app| 国产精品成人免费视频99| 欧美亚洲国产视频| 制服丝袜亚洲| 日韩福利在线观看| 国产另类视频| 偷拍久久网| 五月丁香伊人啪啪手机免费观看|