Android Studio 如何添加和查看日志
前面的小節我們介紹了開發者選項,從本小結我們學習如何使用添加和查看日志。
[toc]
1. 添加日志
Android 通過 Log 類,我們可以創建日志消息,這些消息會顯示在 Logcat 中。一般來說,我們應使用以下日志方法,這些方法按照優先級從高到低(或者從最簡略到最詳細)的順序列示:
-
Log.e(String, String)(錯誤)
-
Log.w(String, String)(警告)
-
Log.i(String, String)(信息)
-
Log.d(String, String)(調試)
-
Log.v(String, String)(詳細)
除開發期間外,其他任何時候都絕不應將詳細日志編譯到我們的應用中。雖然會編譯調試日志,但會在運行時將其去掉,而錯誤、警告和信息日志會始終保留。
對于每種日志方法,第一個參數都應是唯一標記,第二個參數都應是消息。系統日志消息的標記是一個簡短的字符串,指示消息所源自的系統組件(例如 ActivityManager)。標記可以是我們認為有用的任何字符串,例如當前類的名稱。
一種比較好的做法是,在要用于第一個參數的類中聲明 TAG 常量。例如,我們可以按如下方式創建一條信息日志消息:
private static final String TAG = "MyActivity";
...
Log.i(TAG, "MyClass.getView() — get item number " + position);
Tips:長度超過 23 個字符的標記名稱在 logcat 輸出中會被截斷。
2. 查看日志
Android Studio 中的 Logcat 窗口會顯示系統消息,例如在進行垃圾回收時顯示的消息,以及使用 Log 類添加到應用的消息。此窗口可以實時顯示消息,也可以保留歷史記錄,因此我們可以查看較早的消息。
2.1 Logcat 窗口
Logcat 窗口會顯示所選應用(從窗口頂部的下拉列表中選擇)的日志消息,如下圖所示。
Logcat 工具欄中提供以下按鈕:
-
Clear logcat:點擊此按鈕可以清除顯示的日志;
-
Scroll to the end:點擊此按鈕可以跳轉到日志底部并查看最新的日志消息。如果我們先點擊此按鈕,然后點擊日志中的某一行,則視圖會在相應位置暫停滾動;
-
Up the stack trace 和 Down the stack trace:點擊相應按鈕可以在日志的堆棧軌跡中進行上下導航,從而選擇輸出的異常中顯示的后續文件名(以及在編輯器中查看相應行號)。這與我們在日志中點擊某個文件名時的行為相同;
-
Use soft wraps:點擊此按鈕可以啟用換行并防止水平滾動(盡管所有非間斷字符串仍然需要進行水平滾動);
-
Print:點擊此按鈕可以輸出 logcat 消息。在顯示的對話框中選擇輸出偏好設置后,我們還可以選擇將其保存為 PDF 格式;
-
Restart:點擊此按鈕可以清除日志并重啟 logcat。與 Clear logcat 按鈕不同,此按鈕可以恢復并顯示之前的日志消息,因此當 Logcat 無響應而我們又不想失去日志消息時,此按鈕是最有用的;
-
Logcat header:點擊此按鈕可以打開 Configure Logcat Header 對話框,在該對話框中,我們可以自定義各個 logcat 消息的外觀,例如是否顯示日期和時間;
-
Screen capture:點擊此按鈕可以截取屏幕截圖;
-
Screen record:點擊此按鈕可以錄制設備屏幕的視頻(時長不超過 3 分鐘)。
2.2 設置日志級別
我們可以通過設置日志級別來控制 logcat 中顯示的消息數量。我們可以顯示所有消息,也可以僅顯示指示最嚴重情況的消息。無論日志級別設置如何,logcat 都會繼續收集所有消息。此設置僅決定 logcat 顯示什么。
在 Log level 菜單中,選擇以下值之一:
-
Verbose:顯示所有日志消息(默認值)。
-
Debug:顯示僅在開發期間有用的調試日志消息,以及此列表中較低的消息級別。
-
Info:顯示常規使用情況的預期日志消息,以及此列表中較低的消息級別。
-
Warn:顯示尚不是錯誤的潛在問題,以及此列表中較低的消息級別。
-
Error:顯示已經引發錯誤的問題,以及此列表中較低的消息級別。
-
Assert:顯示開發者預計絕不會發生的問題。
2.3 搜索 logcat 消息
要搜索 logcat 中當前顯示的消息,請執行以下操作:
-
如果我們想要使用正則表達式搜索模式,請選擇 Regex。
-
在搜索字段中輸入字符序列。Logcat 輸出會相應地顯示更改。
-
按 Enter 鍵以在此會話期間將搜索字符串保存到菜單中。
-
要重復搜索,請從搜索菜單中選擇。根據需要選擇或取消選擇 Regex。
2.4 過濾 logcat 消息
將日志輸出減少至可管理水平的一種方法是,使用過濾器施加限制。
要定義并應用過濾器,請執行以下操作:
-
在過濾器菜單中,選擇一個過濾選項:
-
Show only selected application:僅顯示通過應用代碼生成的消息(默認選項)。Logcat 使用正在運行的應用的 PID 來過濾日志消息。
-
No Filters:不應用過濾器。無論我們選擇哪個進程,logcat 都會顯示設備中的所有日志消息。
-
Edit Filter Configuration:創建或修改自定義過濾器。例如,我們可以創建一個過濾器,以同時查看兩個應用中的日志消息。
-
-
如果選擇了 Edit Filter Configuration,還需要創建或修改過濾器,在 Create New Logcat Filter 對話框中指定過濾器參數:
-
Filter Name:輸入要設定的過濾器的名稱,或者從左側窗格中進行選擇以修改現有過濾器。名稱只能包含小寫字符、下劃線和數字。
-
Log Tag:(可選)指定標記。
-
Log Message:(可選)指定日志消息文本。
-
Package Name:(可選)指定軟件包名稱。
-
PID:(可選)指定進程 ID。如需了解詳情,請參閱 Logcat 消息格式。
-
Log Level:(可選)選擇日志級別。
-
Regex:選擇此選項可以為相應參數使用正則表達式語法。
-
如果我們認為并沒有看到想要檢查的日志消息,請嘗試選擇 No filters 并搜索特定日志消息。
3. 小結
本節課程我們主要學習了添加日志和查看日志。本節課程的重點如下:
- 掌握如何添加日志;
- 掌握如何查看日志。