app测试日志如何获取,logcat值得拥有
目錄
1、命令行語法
?2、選項
3、過濾日志輸出
4、?控制日志輸出格式
5、格式修飾符?
6、查看備用日志緩沖區(qū)?
Logcat是一個命令行工具,用于轉(zhuǎn)儲系統(tǒng)消息日志,包括設備拋出錯誤時的堆棧軌跡,以及從您的應用中使用 Log 類寫入的消息。
1、命令行語法
要通過?adb shell?運行 Logcat,一般用法如下:
[adb] logcat [<option>] ... [<filter-spec>] ...您可以將 logcat 作為?adb?命令運行,也可以直接在模擬器或關聯(lián)設備的 shell 提示中運行。
要使用 adb 查看日志輸出,請轉(zhuǎn)到您的?SDK platform-tools/ 目錄并執(zhí)行以下命令:
adb logcat?要獲取 logcat 在線幫助,請啟動設備,然后執(zhí)行以下命令:
adb logcat --help?您可以建立與設備的 shell 連接并執(zhí)行以下命令:
adb shell logcat?2、選項
下面介紹了logcat的命令行選項:
-
-b:加載可供查看的備用日志緩沖區(qū)
例如events或radio。默認使用 main、system 和 crash 緩沖區(qū)集。請參閱查看備用日志緩沖區(qū)
-
-c, –clear:清除(清空)所選的緩沖區(qū)并退出
默認緩沖區(qū)集為main、system和crash。要清除所有緩沖區(qū),請使用-b all -c。
-
-e?, –regex=:只輸出日志消息與匹配的行,其中是一個正則表達式
-
-m?, –max-count=:輸出行后退出。這樣是為了與–regex配對,但可以獨立運行
-
–print:與–regex和–max-count配對,使內(nèi)容繞過正則表達式過濾器,但仍能夠在獲得適當數(shù)量的匹配時停止
-
-d:將日志轉(zhuǎn)儲到屏幕并退出
-
-f :將日志消息輸出寫入?
默認值為stdout
-
-g, –buffer-size:輸出指定日志緩沖區(qū)的大小并退出
-
-n:將輪替日志的數(shù)量上限設置為??默認值為4
需要使用?-r?選項
-
-r:每輸出時輪替日志文件
默認值為16。需要使用-f選項
-
-s:相當于過濾器表達式‘*:S’;它將所有標記的優(yōu)先級設為“靜默”,并用于放在可添加內(nèi)容的過濾器表達式列表之前
-
-v:設置日志消息的輸出格式。
默認格式為threadtime。
-
-D, –dividers:輸出各個日志緩沖區(qū)之間的分隔線
-
-c:清空(清除)整個日志并退出
-
-t:僅輸出最新的行數(shù)。此選項包括-d功能
3、過濾日志輸出
1、日志消息的標記是一個簡短的字符串,指示消息所源自的系統(tǒng)組件(例如,“View”表示視圖系統(tǒng))。
2、優(yōu)先級是以下字符值之一(按照從最低到最高優(yōu)先級的順序排列):
-
V:詳細(最低優(yōu)先級)
-
D:調(diào)試
-
I:信息
-
W:警告
-
E:錯誤
-
F:嚴重錯誤
-
S:靜默(最高優(yōu)先級,絕不會輸出任何內(nèi)容)
通過運行 Logcat 并觀察每條消息的前兩列,您可以獲取系統(tǒng)中使用的帶有優(yōu)先級的標記列表,格式為?/
以下是使用?logcat -v brief output?命令獲取的簡短 Logcat 輸出的示例,它表明消息與優(yōu)先級“I”和標記“ActivityManager”相關:
I/ActivityManager( 585): Starting activity: Intent { action=android.intent.action...}要將日志輸出降低到可管理的水平,您可以使用過濾器表達式限制日志輸出。通過過濾器表達式,您可以向系統(tǒng)指明您感興趣的標記/優(yōu)先級組合,系統(tǒng)會針對指定的標記抑制其他消息。
過濾器表達式采用?tag:priority …?格式:
-
tag指示您感興趣的標記
-
priority指示可針對該標記報告的最低優(yōu)先級
不低于指定優(yōu)先級的標記的消息會寫入日志。您可以在一個過濾器表達式中提供任意數(shù)量的 tag:priority 規(guī)范。一系列規(guī)范使用空格分隔。
以下是一個過濾器表達式的示例,該表達式會抑制除標記為“ActivityManager”、優(yōu)先級不低于“信息”的日志消息,以及標記為“MyApp”、優(yōu)先級不低于“調(diào)試”的日志消息以外的所有其他日志消息。
adb logcat ActivityManager:I MyApp:D *:S?
?上述表達式中最后一個元素 *:S 將所有標記的優(yōu)先級設為“靜默”,從而確保系統(tǒng)僅顯示標記為“ActivityManager”和“MyApp”的日志消息。
使用 *:S 是確保日志輸出受限于您已明確指定的過濾器的絕佳方式,它可以讓過濾器充當日志輸出的“白名單”。
以下過濾器表達式顯示了優(yōu)先級不低于“警告”的所有標記的所有日志消息:
adb logcat *:W?
?如果您從開發(fā)計算機運行 Logcat(相對于在遠程 adb shell 上運行),則也可以通過導出環(huán)境變量?ANDROID_LOG_TAGS?的值設置默認過濾器表達式:
export ANDROID_LOG_TAGS="ActivityManager:I MyApp:D *:S"?
4、?控制日志輸出格式
除標記和優(yōu)先級外,日志消息還包含許多元數(shù)據(jù)字段。您可以修改消息的輸出格式,以便它們顯示特定的元數(shù)據(jù)字段。為此,您可以使用?-v?選項,并指定下列某一受支持的輸出格式。
-
brief:顯示優(yōu)先級、標記以及發(fā)出消息的進程的 PID
-
long:顯示所有元數(shù)據(jù)字段,并使用空白行分隔消息
-
process:僅顯示 PID
-
raw:顯示不包含其他元數(shù)據(jù)字段的原始日志消息
-
tag:僅顯示優(yōu)先級和標記
-
thread:舊版格式,顯示優(yōu)先級、PID 以及發(fā)出消息的線程的 TID
-
threadtime(默認值):顯示日期、調(diào)用時間、優(yōu)先級、標記、PID 以及發(fā)出消息的線程的 TID
-
time:顯示日期、調(diào)用時間、優(yōu)先級、標記以及發(fā)出消息的進程的 PID
啟動 Logcat 時,您可以使用 -v 選項指定所需的輸出格式:
[adb] logcat [-v <format>]
?以下示例顯示了如何生成輸出格式為 thread 的消息:
?adb logcat -v thread
?請注意,您只能使用 -v 選項指定一種輸出格式,但可以指定任意數(shù)量的有意義的修飾符。Logcat 會忽略沒有意義的修飾符。
5、格式修飾符?
格式修飾符依據(jù)以下一個或多個修飾符的任意組合更改 Logcat 輸出。
要指定格式修飾符,請使用 -v 選項,如下所示:
adb logcat -b all -v color -d?
?
每個 Android 日志消息都有一個與之相關聯(lián)的標記和優(yōu)先級。您可以將任何格式修飾符與以下任一格式選項進行組合:brief、long、process、raw、tag、thread、threadtime 和 time。
您可以通過在命令行中輸入 logcat -v –help 獲取格式修飾符詳細信息:
-
color:使用不同的顏色來顯示每個優(yōu)先級。
-
descriptive:顯示日志緩沖區(qū)事件說明。
此修飾符僅影響事件日志緩沖區(qū)消息,不會對其他非二進制文件緩沖區(qū)產(chǎn)生任何影響。事件說明取自 event-log-tags 數(shù)據(jù)庫。
-
epoch:顯示自 1970 年 1 月 1 日以來的時間(以秒為單位)。
-
monotonic:顯示自上次啟動以來的時間(以 CPU 秒為單位)。
-
printable:確保所有二進制日志記錄內(nèi)容都進行了轉(zhuǎn)義。
-
uid:如果訪問控制允許,則顯示 UID 或記錄的進程的 Android ID。
-
usec:顯示精確到微秒的時間。
-
UTC:顯示 UTC 時間。
-
year:將年份添加到顯示的時間。
-
zone:將本地時區(qū)添加到顯示的時間。
6、查看備用日志緩沖區(qū)?
?
Android 日志記錄系統(tǒng)為日志消息保留了多個環(huán)形緩沖區(qū),而且并非所有的日志消息都會發(fā)送到默認的環(huán)形緩沖區(qū)。
要查看其他日志消息,您可以使用 -b 選項運行 logcat 命令,以請求查看備用的環(huán)形緩沖區(qū)。您可以查看下列任意備用緩沖區(qū)
-
radio:查看包含無線裝置/電話相關消息的緩沖區(qū)。
-
events:查看已經(jīng)過解譯的二進制系統(tǒng)事件緩沖區(qū)消息。
-
main:查看主日志緩沖區(qū)(默認),不包含系統(tǒng)和崩潰日志消息。
-
system:查看系統(tǒng)日志緩沖區(qū)(默認)。
-
crash:查看崩潰日志緩沖區(qū)(默認)。
-
all:查看所有緩沖區(qū)。
-
default:報告 main、system 和 crash 緩沖區(qū)。
以下是 -b 選項的用法:
[adb] logcat [-b <buffer>]?
?以下示例顯示了如何查看包含無線裝置和電話相關消息的日志緩沖區(qū)
adb logcat -b radio?
?此外,您也可以為要輸出的所有緩沖區(qū)指定多個 -b 標記,如下所示:
?logcat -b main -b radio -b events
?您可以指定一個 -b 標記,后跟緩沖區(qū)逗號分隔列表,例如:
logcat -b main,radio,events?
感謝每一個認真閱讀我文章的人,看著粉絲一路的上漲和關注,禮尚往來總是要有的,雖然不是什么很值錢的東西,如果你用得到的話可以直接免費拿走:
① 2000多本軟件測試電子書(主流和經(jīng)典的書籍應該都有了)
② 軟件測試/自動化測試標準庫資料(最全中文版)
③ 項目源碼(四五十個有趣且經(jīng)典的練手項目及源碼)
④ Python編程語言、API接口自動化測試、web自動化測試、App自動化測試(適合小白學習)
⑤ Python學習路線圖(告別不入流的學習)?
?上圖的資料?在我的QQ技術交流群里(技術交流和資源共享,廣告進來腿給你打斷)
可以自助拿走,群號953306497(備注“csdn111”)群里的免費資料都是筆者十多年測試生涯的精華。還有同行大神一起交流技術哦。
總結(jié)
以上是生活随笔為你收集整理的app测试日志如何获取,logcat值得拥有的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 自媒体形式下的个人设计(面向用户)—博客
- 下一篇: 突围AI芯片,中国企业寻找新打法