Android開發(fā)中的logcat工具使用
logcat是Android中一個命令行工具,可以用于得到程序的log信息。
logcat使用方法如下所示:
logcat [options] [filterspecs]
logcat的選項包括:
-s 設(shè)置過濾器,例如指定 "*:s"
-f <filename> 輸出到文件,默認情況是標準輸出。
-r [<kbytes>] Rotate log every kbytes. (16 ifunspecified).Requires -f
-n <count> Sets max number of rotated logs to<count>,default 4
-v <format> 設(shè)置log的打印格式, <format> 是下面的一種:
brief process tag thread raw time threadtime long
-c 清除所有l(wèi)og并退出
-d 得到所有l(wèi)og并退出 (不阻塞)
-g 得到環(huán)形緩沖區(qū)的大小并退出
-b <buffer> 請求不同的環(huán)形緩沖區(qū) ("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決定的,在程序中l(wèi)og的使用方法如下所示:
Log.v() VERBOSE
Log.d() DEBUG
Log.i() INFO
Log.w() WARN
Log.e() ERROR
以上log的級別依次升高,DEBUG信息應(yīng)當只存在于開發(fā)中,INFO,WARN,ERROR這三種log將出現(xiàn)在發(fā)布版本中。
對于JAVA類,可以聲明一個字符串常量TAG,Logcat可以根據(jù)他來區(qū)分不同的log,例如在計算器(Calculator)的類中,定義如下所示:
public class Calculator extends Activity
/* ...... */
private static final String LOG_TAG = "Calculator";
private static final boolean DEBUG = false;
private static final boolean LOG_ENABLED = DEBUG ? Config.LOGD:Config.LOGV;
/* ...... */
由此,所有在Calculator中使用的log,均以"Calculator"為開頭。
例如使用方法如下所示:
# logcat &
< 得到一個log片段 >
W/KeyCharacterMap( 130): No keyboard for id 0
W/KeyCharacterMap( 130): Using defaultkeymap:/system/usr/keychars/qwerty.kcm.bin
I/ActivityManager( 52): Displayedactivitycom.android.contacts/.DialtactsContactsEntryActivity: 983ms
I/ARMAssembler( 52):generatedscanline__00000077:03545404_00000A04_00000000 [ 29 ipp](51 ins) at[0x25c978:0x25ca44] in 1764174 ns
I/ARMAssembler( 52):generatedscanline__00000077:03515104_00000001_00000000 [ 46 ipp](65 ins) at[0x25d1c8:0x25d2cc] in 776789 ns
D/dalvikvm( 130): GC freed 834 ts / 81760 bytes in 63ms
D/dalvikvm( 52): GC freed 10588 ts / 425776 bytes in 94ms
其中W/I/D表示log的級別,“dalvikvm”“ARMAssembler”等是不同組件(component)的名稱,后面括號里面的數(shù)字表示了發(fā)出log的進程號。
使用技巧:
1.使用logcat &在后臺運行
2.使用-d得到所有l(wèi)og
3.使用-f或者重定向(>和>>)輸出到文件
4.使用-s設(shè)置過濾器,得到想要的log。
當然,最重要的還是在程序中加入恰當?shù)膌og。
【編輯推薦】