當前位置:編程學習大全網 - 源碼下載 - 怎麽用eclipse還有logcat命令的過濾log信息

怎麽用eclipse還有logcat命令的過濾log信息

無論什麽樣的程序開發過程中,出現錯誤都是不可避免的,壹般情況下,語法錯誤會被開發環境檢測到,並能及時的提示我們錯誤的位置以及修改的方法,但是邏輯錯誤就不是那麽容易被發現了,通常邏輯錯誤的定位和分析是壹件非常困難的事情。

所以在學習Android過程中,繼學習它的程序結構,寫了HelloWorld和壹些簡單的界面布局程序之後,我選擇研究壹下它的調試工具。

LogCat就是其中壹個。LogCat是用來獲取系統日誌信息的工具,它可以捕獲的信息包括Dalvik虛擬機產生的信息,進程信

息,ActivityManager信息,PackagerManager信息,Android運行時信息和應用程序信息等等。

我們可以在打開Eclipse之後,選擇Window?–>?Show?View?->Other菜單,然後在Android->LogCat中選擇LogCat,這樣LogCat便會在Eclipse的下方區域出現了。

其中,在LogCat的右上方的5個字母分別表示了5種不同類型的日誌信息(並以不同顏色加以區分,級別越高,顏色越突出):

1.?[V]:詳細(Verbose)信息,輸出顏色為黑色

2.?[D]:調試(Debug)信息,輸出顏色是藍色

3.?[I]:通告(Info)信息,輸出顏色為綠色

4.?[W]:警告(Warn)信息,輸出顏色為橙色

5.?[E]:錯誤(Error)信息,輸出顏色為紅色,這裏錯誤信息的級別最高,其次是警告信息,然後是通知信息和調試信息,級別最低的是詳細信息。

6.[assert],新版本加入的。

在LogCat中,我們可以通告這5個字母圖標選擇要顯示的信息類型,級別高於所選類型的信息也會在LogCat中顯示,但級別低於所選類型的信息則不會被顯示。

在Android程序調試過程中,首先要引入android.util.Log包,然後使用用來記錄詳細信息的Log.v()、用來記錄調試信息的

Log.d()、用來記錄通告信息的Log.i()、用來記錄警告信息的Log.w()、用來記錄錯誤信息的Log.e()這樣五個函數在程序中設置“日

誌點”。這些函數的第壹個參數是日誌標簽TAG(就是在妳要測試的位置需要壹個常量用來標記,標記的名字就是所謂的日誌標簽),第二個參數是實際的信息內

容。每當程序運行到我們設置的“日誌點”時,應用程序的日誌信息便被發送到LogCat中,我們就可以根據“日誌點”顯示的信息與預期我們在函數中設置的

信息內容是否壹致來判斷程序是否存在錯誤,這樣就能根據“日誌點”來迅速找到錯誤的“出事地點”了。

在下面的程序中,演示了Log類的具體使用方法:

package?wt.relativeLayout;

import?android.app.Activity;

import?android.os.Bundle;

import?android.util.Log;

import?android.widget.Button;

import?android.widget.EditText;

import?android.widget.TextView;

import?android.util.Log;

public?class?RelativeLayout?extends?Activity?{

final?static?String?TAG?=?"LOGCAT";

private?TextView?tv?=?null;

private?EditText?et?=?null;

private?Button?btn1?=?null;

private?Button?btn2?=?null;

@Override

public?void?onCreate(Bundle?savedInstanceState)?{

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

tv?=?(TextView)findViewById(R.id.label);

et?=?(EditText)findViewById(R.id.entry);

btn1?=?(Button)findViewById(R.id.cancel);

btn2?=?(Button)findViewById(R.id.ok);

tv.setText(R.string.name);

btn1.setText(R.string.button1);

btn2.setText(R.string.button2);

Log.v(TAG,?"This?is?Verbose");

Log.d(TAG,?"This?is?Debug");

Log.i(TAG,?"This?is?Info");

Log.w(TAG,?"This?is?Warn");

Log.e(TAG,?"This?is?Error");

}

}

程序運行後,LogCat捕獲得到應用程序發送的日誌信息,顯示結果如下圖:

通過結果我們發現,即使我們事先選擇了某個特定的日誌信息的級別,產生的日誌信息還是有很多,需要我們逐條去閱讀,給我們帶來很大的麻煩。這時我們就要用

到壹個LogCat提供的“過濾”功能了,在右上角的“+”號和“-”號,分別是添加和刪除過濾器。我們可以根據日誌信息的標簽(Tag)、產生日誌的進

程編號(Pid)或者信息等級(Level),對顯示的日誌內容進行過濾。在實際使用中,我們最好為每壹個類聲明壹個字符串常量TAG,這樣在

Logcat中我們可以容易區分不同的類的日誌了。

下面使用在LogCat右上角的“+”號,添加壹個名為LogcatFilter的過濾器,並設置過濾條件為“標簽=LOGCAT”,下圖為過濾器的具體設置方法:

過濾器設置好後,LogcatFilter過濾後的日誌信息如下圖,這樣,無論什麽類型的日誌信息,屬於哪個進程,只要標簽為LOGCAT,都將顯示在LogcatFilter內。

  • 上一篇:E語言制作五子棋
  • 下一篇:6__ 4K預算相機推薦給新手。
  • copyright 2024編程學習大全網