做app測試,遇到異常情況,查看日誌是必不可少的,日誌如何輸出到手機sdcard和電腦的目錄呢?這就需要用logcat輸出日誌了
以下操作是基於windows平臺的操作:adb logcat | find
linux平臺的操作可以把find改成grep: adb logcat | grep
windows上的dos裡面是沒grep指令的
1.把日誌存入手機sdcard某個目錄(前提是這個目錄要是存在的)
adb logcat -f /sdcard/yoyo/yoyo.txt
備註:-f將日誌輸出到文件
上面這個指令在真機上(未root)是會報錯的,提示沒操作權限,在模擬器上可以執行
2.把日誌存入電腦的某個目錄,如d:\debug
adb logcat >d:debug\yoyo.txt
備註這裡沒-f, 不要問為什麼
# 作者:上海-悠悠 QQ交流群:512200893
find過濾包名1.如果直接用adb logcat抓日誌的話,會把系統的一些其他無關緊要的都抓出來,如果只想抓取被測app的日誌,那就根據包名過濾
adb logcat | find 「com.sankuai.meituan」 >d:\hello.txt
結束logcat1.結束logcat抓包,可以用ctr+c快捷鍵結束, 這個是通過手工的快捷鍵操作完成
2.也可以先查詢到logcat的pip,再kill掉
adb shell ps | findstr logcat
adb shell kill -9 [logcatpid]
注意:kill操作在模擬器上是可以的,真機上沒權限
# 作者:上海-悠悠 QQ交流群:512200893
help其它功能1.cmd輸入adb logcat -help可以查看其它功能
adb logcat -help
C:\Users\admin>adb logcat -helpUnrecognized Option hUsage: logcat [options] [filterspecs]**選項**:-- "-s"選項 : 設置輸出日誌的標籤, 只顯示該標籤的日誌;-- "-f"選項 : 將日誌輸出到文件, 默認輸出到標準輸出流中, -f 參數執行不成功;-- "-r"選項 : 按照每千字節輸出日誌, 需要 -f 參數, 不過這個命令沒有執行成功;-- "-n"選項 : 設置日誌輸出的最大數目, 需要 -r 參數, 這個執行 感覺 跟 adb logcat 效果一樣;-- "-v"選項 : 設置日誌的輸出格式, 注意只能設置一項;-- "-c"選項 : 清空所有的日誌緩存信息;-- "-d"選項 : 將緩存的日誌輸出到屏幕上, 並且不會阻塞;-- "-t"選項 : 輸出最近的幾行日誌, 輸出完退出, 不阻塞;-- "-g"選項 : 查看日誌緩衝區信息;-- "-b"選項 : 加載一個日誌緩衝區, 默認是 main, 下面詳解;-- "-B"選項 : 以二進位形式輸出日誌;**過濾項格式** : <tag>[:priority] , 標籤:日誌等級, 默認的日誌過濾項是 " *:I " ;-- V : Verbose (明細);-- D : Debug (調試);-- I : Info (信息);-- W : Warn (警告);-- E : Error (錯誤);-- F : Fatal (嚴重錯誤);-- S : Silent(Super all output) (最高的優先級, 可能不會記載東西);'*' by itself means '*:D' and <tag> by itself means <tag>:V.If no '*' filterspec or -s on command line, all filter defaults to '*:V'.eg: '*:S <tag>' prints only <tag>, '<tag>:S' suppresses all <tag> log messages.If not specified on the command line, filterspec is set from ANDROID_LOG_TAGS.If not specified with -v on command line, format is set from ANDROID_PRINTF_LOGor defaults to "threadtime"