Android log日誌信息獲取

  LogCat是Android中一個命令行工具,可以用於得到程序的log信息,結合tee和grep命令可以方便的獲取、查看日誌。

1、Logcat使用
    命令:LogCat [options] [filterspecs]
     LogCat的選項包括:
      -s                    設置過濾器,如指定 '*:s'.
      -f <filename>   輸出到文件,默認情況是標準輸出。
      -r [<kbytes>]   Rotate log every kbytes. (16 if unspecified). Requires –f。
      -n <count>      Sets max number of rotated logs to <count>, default 4。
      -v <format>     設置log的打印格式,  <format> 是下面的一種: brief process tag thread raw time threadtime long。
      -c                   清除所有log並退出。
      -d                   得到所有log並退出 (不阻塞)。
      -g                   得到環形緩衝區的大小並退出。
      -b <buffer>     請求不同的環形緩衝區('main' (默認), 'radio', 'events')。
      -B                   輸出log到二進制中。
    過濾器的格式是一個這樣的串:  <tag>[:priority]
    其中 <tag> 表示log的component, tag (或者使用 * 表示所有) , priority 如下所示:
      V    Verbose
      D    Debug
      I    Info
      W   Warn
      E    Error
      F    Fatal
      S    Silent
    事實上LogCat的功能是由Android的類android.util.Log決定的,在程序中log的使用方法如下所示:
        Log.v() -------------------- VERBOSE
        Log.d() -------------------- DEBUG
        Log.i() -------------------- INFO
        Log.w() -------------------- WARN
        Log.e() -------------------- ERROR
    以上log的級別依次升高,Debug信息應當只存在於開發中,INFO、 WARN、ERROR這3種log將出現在發佈版本中。

2、tee使用
    功能說明:讀取標準輸入的數據,並將其內容輸出成文件。
    語  法:tee [-ai][--help][--version][文件...]
    補充說明:tee指令會從標準輸入設備讀取數據,將其內容輸出到標準輸出設備,同時保存成文件。
    參  數:
    -a或--append  附加到既有文件的後面,而非覆蓋它.
    -i-i或--ignore-interrupts  忽略中斷信號。
    --help  在線幫助。
    --version  顯示版本信息。

3、grep使用
   grep (global search regular expression(RE) and print out the line,全面搜索正則表達式並把行打印出來)是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行打印出來。Unix的grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的擴展,支持更多的re元字符, fgrep就是fixed grep或fast grep,它們把所有的字母都看作單詞,也就是說,正則表達式中的元字符表示回其自身的字面意義,不再特殊。linux使用GNU版本的grep。它功能更強,可以通過-G、-E、-F命令行選項來使用egrep和fgrep的功能。
   grep的工作方式是這樣的,它在一個或多個文件中搜索字符串模板。如果模板包括空格,則必須被引用,模板後的所有字符串被看作文件名。搜索的結果被送到屏幕,不影響原文件內容。
   grep可用於shell腳本,因爲grep通過返回一個狀態值來說明搜索的狀態,如果模板搜索成功,則返回0,如果搜索不成功,則返回1,如果搜索的文件不存在,則返回2。我們利用這些返回值就可進行一些自動化的文本處理工作。
   具體命令和語法請參考其他書籍。

4、Logcat、tee和grep結合使用
   三者結合到一起可以實現:log日誌同時輸出到終端和本地文件,對於輸出到終端的log按照grep的要求進行過濾顯示。
   比如:sudo ./adb logcat -v time | tee /home/Linux/main.txt |grep 'accept'——輸入android應用層日誌到屏幕和main.txt文件,同時過濾屏幕的日誌顯示包含字符串“accept”的行,以關注自己需要的信息。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章