Android除錯----日誌

查志強發表於2014-07-26

【原文:http://www.cnblogs.com/dyufei/archive/2010/08/28/2573915.html

Android應用程式開發,除錯時需要輔助日誌檔案中的輸出資訊。

一、Android應用程式除錯

       預設Android應用程式不能除錯,(eclipse)會提示如下資訊:“Application “xxx” does not have the attribute 'debuggable' set to TRUE in its manifest and cannot be debugged”

      需要修改Manifest檔案中的debuggable屬性,使其值為true,這時才可以除錯。

二、日誌資訊

1、輸出日誌資訊

Android提供一個靜態Log類,提供五個靜態方法Log.v()(詳細),Log.d()(debug),Log.i()(information),Log.w()(warning) ,Log.e()(error),用來將訊息寫入模擬器上的日誌檔案中。如果在DDMS上執行logcat可以就實時檢視訊息

(1)日誌資訊級別

  •          Log.v() -------------------- VERBOSE
  •          Log.d() -------------------- DEBUG
  •          Log.i() -------------------- INFO
  •          Log.w() -------------------- WARN
  •          Log.e() -------------------- ERROR

以上log的級別依次升高,DEBUG資訊應當只存在於開發中,INFO, WARN,ERROR這三種log將出現在釋出版本中。

(2)輸出日誌資訊

在應用程式中新增 import android.util.Log;

使用該類的靜態方法,

    1.         Log.d(String tag, String msg); 
  1.         Log.i(String tag, String msg); 
  2.         Log.w(String tag, String msg); 
  3.         Log.e(String tag, String msg); 
  • 其中: tag是一個標識,可以是任意字串(一般將tag設定成一個靜態常量或使用類名+方法名)用來在檢視日誌時提供一個篩選條件,以方便的追蹤資訊的輸出。
  •           Msg 是log資訊的內容。

在應用程式中使用 System.out.println();語句將資訊輸出到日誌檔案(而不是將資訊輸出到控制檯)。

2、eclipse中檢視日誌

設定步驟如下:

(1)windows ==> Preferences ==> Android ==> DDMS  ==> Logging Level

(設定日誌級別,選中之下的將被顯示,選中之上的不被顯示。)

clip_image001

(2)windows ==> Show View ==> Android ==> LogCat

clip_image002

(3)顯示LogCat欄目。

clip_image003

3、使用logcat命令列工具檢視日誌

     logcat是Android中的一個命令列工具,可以用其得到程式的log資訊。

logcat使用方法如下: 

          logcat [options] [filterspecs]

options包括:

  •   -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,

priority 如下:

  •   V    Verbose---------------------------------------Log.v()
  •   D    Debug-----------------------------------------Log.d()
  •   I     Info---------------------------------------------Log.i()
  •   W   Warn-----------------------------------------Log.w()
  •   E    Error------------------------------------------Log.e()
  •   F    Fatal
  •   S    Silent

相關文章