LogCat是Android中一個命令行工具,可以用於得到程序的log信息,本附錄講解其使用方法和其中的一些技巧。
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將出現在發佈版本中。
對於Java類,可以聲明一個字符串常量TAG,LogCat可以根據它來區分不同的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”爲開頭。