亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇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能夠完美勝任這個功能。在日志過濾器中運(yùn)用正則表達(dá)式可以保留自己想要的日志信息或過濾掉無用的日志信息,使用轉(zhuǎn)義字符或特殊字符序列來描述具有特定含義的過濾條件。

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

        正則表達(dá)式(通??s寫成“regex”)是一種可用于字符串模式匹配和字符串替換的強(qiáng)有力的工具。如果我們要查找的字符串是具體而完整的, 則直接用這個字符串進(jìn)行查找即可。但一般情況下,我們對要查找的內(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中的“日志級別”下拉列表中進(jìn)行級別選擇,默認(rèn)級別是最小的級別信息Verbose,如圖1所示。級別高于所選類型的信息也會在Logcat中顯示出來,級別低于所選類型的信息則不會被顯示,所以只是用日志級別過濾的信息是有限的。

        圖1 Logcat

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

        運(yùn)行Android程序的時候,即使事先選擇了某個日志信息的級別,產(chǎn)生的日志信息還是很多。這時就要用到Logcat提供的“過濾”功能了,單擊圖1右上角“日志過濾器”下拉列表框,選擇Edit Filter Configuration打開Creat New Logcat Filter對話框(如圖2)添加、刪除、編輯日志過濾器。可以根據(jù)日志信息的標(biāo)簽(Tag)、信息的內(nèi)容(Message)、日志包名、產(chǎn)生日志的進(jìn)程編號(PID)或者信息等級(Level),對顯示的日志內(nèi)容進(jìn)行過濾。單擊對話框左上角的“+”號,添加一個名為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 代表進(jìn)程標(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進(jìn)行過濾或忽略,也可以在圖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)建查詢模式,其所提供的強(qiáng)大的模式匹配功能大大簡化了日志篩選工作。當(dāng)然,也只有通過不斷地實際使用的過程,反復(fù)運(yùn)用和精通正則表達(dá)式的所有特殊字符,才能真正體會到運(yùn)用正則表達(dá)式在日志過濾中的優(yōu)越性,為程序的調(diào)試提供強(qiáng)有力的支持。

        猜你喜歡
        字符串字符對話框
        尋找更強(qiáng)的字符映射管理器
        正?;謴?fù)虛擬機(jī)
        字符代表幾
        一種USB接口字符液晶控制器設(shè)計
        電子制作(2019年19期)2019-11-23 08:41:50
        Bootlace Worms’Secret etc.
        消失的殖民村莊和神秘字符
        一種新的基于對稱性的字符串相似性處理算法
        依據(jù)字符串匹配的中文分詞模型研究
        快速抓取對話框中的完整信息
        電腦迷(2012年22期)2012-04-29 20:30:54
        一種針對Java中字符串的內(nèi)存管理方案
        侵犯了美丽丰满人妻中文字幕| 亚洲av日韩av在线观看| 大地资源中文第3页| 人妻激情另类乱人伦人妻| 成人欧美一区二区三区白人| 2021年性爱喷水视频| 99久久婷婷国产精品综合| 国产av精品一区二区三区久久| 日本熟妇hdsex视频| 国产suv精品一区二人妻| 乱人伦中文无码视频在线观看 | 亚洲第一无码精品久久| 大陆啪啪福利视频| 一本色道久久综合亚洲精品不| 初尝人妻少妇中文字幕| 久久亚洲精品无码va白人极品| 亚洲日韩欧美国产另类综合| 亚洲av日韩av综合aⅴxxx| 欧美xxxxx精品| 国产丝袜爆操在线观看| 国产午夜福利片在线观看| 真人做爰片免费观看播放| 国产主播一区二区三区在线观看| 亚洲日韩图片专区小说专区| 亚洲综合国产成人丁香五月小说| 羞涩色进入亚洲一区二区av | 又黄又爽又色视频| 99精品热这里只有精品| 真实国产网爆门事件在线观看| av免费看网站在线观看| 亚洲视频免费一区二区| 九一九色国产| 二区三区视频| 亚洲av永久青草无码精品| 91久久国产精品综合| 亚洲乱码av中文一区二区| аⅴ资源天堂资源库在线| 日韩精品成人无码AV片| 精品人妻一区二区三区蜜臀在线| 亚洲中文久久精品字幕| 一区二区三区av波多野结衣|