◆版權聲明:本文出自胖喵~的博客,轉載必須注明出處。
轉載請注明出處:http://www.cnblogs.com/by-dream/p/4684123.html
前言
上一篇將的是如果在eclipse中的Logcat進行Log的查看和過濾,很多的時候我們面臨着這樣的問題:
如果你的app需要在室外才可以運行(例如使用地圖軟件中的導航),室外可能不方便去攜帶電腦,此時你又想保存log,那么你該如何去做呢?本節就來解決這個問題。
預備知識
首先還是先了解一下上節沒有提到的知識,我覺得還是比較重要的,就是log分類的幾種級別(prority):
v (verbose)
d (debug)
i (information)
w (warning)
e (error)
這幾種日志的級別從上到下優先級越來越高,也就是說如果你過濾v,那么所以的日志都會出來,如果你過來e,那么只會出現e的日志。
命令行
在shell命令中輸入logcat后

可以看到和eclipse中的logCat的效果是一樣的,它會實時的將手機當中的log給刷出來,如果你不給它停止的命令,它就會一直的在這里刷啊刷啊。
LogCat的命令具體使用的方法,可以參考文檔:http://developer.android.com/intl/zh-cn/tools/help/logcat.html
個人感覺里面有很多的用法對我沒什么大用處,所以我就這里不介紹了,我只介紹一些大部分會用到的比較實用的功能:
一、log重定向到pc
這個其實沒啥難度就是使用了windows命令行的 重定向符(“>” “>>”),這兩者的區別就是一個是覆蓋,一個是疊加。

這樣就將log重定向到了C盤下:

ps.我用的是應用寶的tadb,你們只需把tadb改成adb運行即可
二、log重定向到手機
原理和上面差不多,只不過是需要是手機的shell命令下進行執行。

將log保存在手機存儲根目錄下的tmp文件中了:

三、按格式顯示log
這需要用到logcat中的 -v 選項
用法為 logcat [-v <format>]
brief — 顯示priority/tag,產生日志的進程的id,和日志消息本身。它是日志默認的輸出格式。
process — 顯示priority,產生日志的進程的id,和日志消息本身
tag — 顯示prority/tag,和消息本身
thread — 顯示priority,線程和日志消息本身
raw — 只顯示消息本身
time — 顯示產生日志的時間,prority/tag,產生日志的進程Id,和日志消息本身。
long — 顯示產生日志的時間,prority/tag,產生日志的進程Id,和日志消息本身。但是日志消息本身另其一行進行顯示。每個日志之間空一行。
prority 代表的就是 D、V、E、W等。看個例子吧:

四、按tag過濾log
按照tag過濾的格式是這樣的: logcat [[tag:prority] [tag:prority] *:S]
支持多個tag同時在一起過濾,其中 “*:S” 代表的是將過濾的tag內容顯示出來。直接看例子吧:

工具介紹
目前業內這塊做的比較好的,非騰訊的GT莫屬了,我們可以在應用寶下載最新版的GT:

安裝好之后,點擊進入第四個選項 “日志”,打開logcat的開關,同時在菜單中打開 “GT日志自動保存”

這樣GT就會為你自動保存log,目錄就在 “手機存儲卡” - GT - Log 的文件夾下:

當一個文件寫滿之后,就會再往另一個文件里寫,文件名字就是數字依次類推。
使用GT我們就可以實現脫機抓log了。
