新版Android Studio Logcat view使用簡明教程

語言: CN / TW / HK

從Android Studio Dophin開始,Android Studio中的預設展示了新版的logcat。新版的logcat色彩上是更加的好看了,不同的tag會有不同的顏色,不同level等級的log預設也有不同的顏色。log過濾修改的更簡潔了,當然使用起來也更加複雜了。原先的log檢視只需要勾選就可以選擇不同level的log了,只需要選擇只展示當前應用的log就可以過濾掉其他應用的log了,但是新版只提供了一個輸入框去過濾。在經過幾個月的適應和對於官方文件的學習後,終於熟練使用,這裡簡單分享一下,讓更多人更快入門。

logcat-window.png

定義自己專屬的log view

log view 預設提供了兩種檢視,Standard View 和Compat View。Stand View會展示每一條log的日期,時間,程序執行緒id,tag,包名,log level以及message。Compat View只展示時間,log level和詳細的message。可以通過log view左邊的Configure Logcat Formatting Options按鈕來修改,同時這個按鈕中還有一個Modify Views選項可以來修改standard和 Compat檢視的具體展示內容,可以定製自己的logview樣式,如下圖所示。

logcat-view-setting.jpg

個性化的logcat 檢視不僅僅是可以自定義展示的內容,還可以修改log和filter的配色方案。前往Settings(Windows)/Preferences(Mac) ->Editor -> Color Scheme,選擇Android Logcat即可修改log 的顏色,選擇Logcat Filter即可修改filter的顏色。

以上修改的是logcat view的外表,我們還可以修改它的核心,一個是logcat迴圈滾動區的大小,以及新logcat window的預設filter,可以通過前往Settings(Windows)/Preferences(Mac) -> Tools -> Logcat 設定。

一些操作技巧

在標準佈局下,或者我們的log太長的時候,一屏通常展示不下,我們需要不停的向右滑動,滾動才能看到log的資訊,我們可以用log view左側的Soft-Wrap logcat-soft-wrap.png按鈕來讓log換行。

左側的Clear Logcat按鈕可以清空logcat。左側的Pause按鈕可以暫停logcat的輸出,方便看錯誤日誌,可以避免關心的日誌被新的日誌沖掉。

新版本中,可以通過點選logcat tab右側的New tab logcat-new-tab.png按鈕來同時建立多個logcat view視窗。這種方式建立的不能同時展示,而利用logcat view左側的split Panels 按鈕則可以建立多個視窗,並且同時展示。每一個視窗都可以設定自己要展示的連線裝置,展示樣式,以及過濾選項。這樣就可以很方便的同時觀察多種log。

logcat-multi-window.jpg

通過鍵值對來過濾Log

logcat-query-suggestions.png

新的過濾器,看起來簡單,實際上更加複雜且強大了。通過Ctrl+Space按鍵可以檢視系統建議的一些查詢列表。這裡介紹一下查詢中會用到的鍵: + tag: 匹配日誌的tag欄位 + package:匹配記錄日誌的軟體包名,其中特殊值mine匹配當前開啟專案對應的應用log。 + process:匹配記錄日誌的程序名 + message:匹配日誌中我們自己填寫的message的部分。 + level:與指定或者更高級別的日誌匹配,比如debug或者error,輸入level後as會自動提示可以選擇。 + age:讓視窗中只保留最近一段時間的log,值為數字加單位,s表示秒,m表示分鐘,h表示小時,d表示天。如age:10s就只保留最近10s的日誌。 + is: 這個鍵有兩個固定的value取值,crash匹配應用崩潰日誌,stacktrace匹配任意類似java堆疊軌跡的日誌,這兩個對於看crash查問題是非常好用的。

這麼多的鍵匹配,是可以邏輯組合的。我們可以使用&|以及圓括號,系統會強制執行常規的運算子優先順序。level:ERROR | tag:foo & package:mine 會被強轉為level:ERROR | (tag:foo & package:mine )。如果我們沒有填寫邏輯運算子,查詢語言會將多個具有相同鍵的非否定過濾視為OR,其他過濾視為AND。 如: tag:fa tag:ba package:mine 計算邏輯是 (tag:fa | tag:ba) & package:minetag:fa -tag:ba package:mine 計算邏輯是 tag:fa & -tag:ba & package:mine。這裡的-用來表示否定,既tag不包含ba的情況。

新版的logcat view當然也是支援正則的,tag、message、package、process這幾項是支援正則的。使用正則需要在鍵後面加一個~,例如: tag~:My.*Report。 除了正則這個選項之外,這幾個鍵還有完全匹配和包含字串即可的選項。不加修飾符號就是包含指定的字串即可匹配。如果後面加=則要完全匹配才可以,例如process=:system_serverprocess:system_ser可以匹配到system_server的log,但是process=:system_ser則無法匹配到。

同時如上幾個匹配選項都支援和前面說的否定符號連用如:-process=:system_server

既然新版支援了這麼複雜和強大過濾功能,如果每次都現想現寫,那肯定是頭皮發麻。as也為我們提供了收藏和歷史記錄功能。點選右側的的星星按鈕即可收藏當前的過濾條件,點選左側的漏斗即可檢視歷史和收藏,並且可以刪除不想要的記錄。

切換回舊版log view

最後的最後,如果你覺得新版本適應不了,還是想要切換回舊版本的log view,還想要保留新版的android studio,也還是可以通過修改設定進行切換的。 前往Settings(Windows)/Preferences(Mac) -> Experimental, 反選Enable new logcat tool window 即可,如下圖所示。

disable_new_logview.jpg

學習工具的目的,是為了讓工具更好的為我們服務。希望大家都能夠通過使用as提供的新功能來提高效率,從而有更多的時間去風花雪月。

參考:https://developer.android.com/studio/debug/logcat