在我們進行Android程式開發的時候,列印日誌對我們偵錯工具定位問題是非常重要的。比如在我們的eclipse開發環境中,通過adroid 開發外掛程式內建的Logcat視窗可以很方便的查看輸出日誌。
這個比較簡單,不是本文講解的重點。
不依賴eclipse環境,其實我們可以通過命令adb logcat來抓取日誌.前提是你安裝了adb工具包,android sdk中內建這個工具包adb.exe。
在這裡假設你安裝了工具包並且設定了環境變數(在Path中加入adb.exe對應的目錄)。
讓我們看看adb logcat的協助資訊 敲入adb logcat --help。
adb logcat -s 這個主要是用來過濾日誌用的.<tag>[:priority]
比如
android logcat -s WORKFLOW 顯示所有TAG為WORKFLOW的日誌,記錄層級包括V,D,I,W,E,F。
android logcat -s WORKFLOW:I 顯示所有TAG為WORKFLOW 記錄層級為I以上的的日誌。
android logcat -s *:W 顯示所有記錄層級為W以上的日誌。
如果我們想把日誌輸出到檔案而不是控制台,很簡單。
android logcat > logs.txt “>" 表示輸出重新導向,直接寫到檔案即可。
注意按照協助資訊中的方法 android logcat -f logs.txt 總是會報錯,檔案唯讀 不能寫入.
adb logcat -v 控制日誌輸出的格式化問題
可取值範圍 brief process tag thread raw time long,在不指定-v參數的情況下 預設是brief。
你可以試試adb logcat -v time ,adb logcat -v tag輸出日誌的區別,就知道他們的具體含義了。
adb logcat -b 設定不同的日誌緩衝區的
可取值範圍 main radio events 在不指定-b的情況下,預設是main。
大家可以嘗試一下 adb logcat -b radio 以及 adb logcat -b events兩個命令,看看輸出的日誌有和區別
最後: 在實際使用過程中發現Logcat輸出的最長文本是有長度限制的,當超過一定長度時會被截取,只顯示了一部分的內容,經過調查發現,android的Logcat源碼對Logcat對應的文本緩衝區為1024位元組,如果你的輸入內容過長,請先截斷一下,將輸出語句切割成幾條輸出語句,保證每條輸出語句的長度不超過1024位元組。