自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Android程序調(diào)試–LogCat按照日志信息級別進(jìn)行輸出和過濾

移動開發(fā) Android
無論什么樣的程序開發(fā)過程中,出現(xiàn)錯誤都是不可避免的,一般情況下,語法錯誤會被開發(fā)環(huán)境檢測到,并能及時的提示我們錯誤的位置以及修改的方法,但是邏輯錯誤就不是那么容易被發(fā)現(xiàn)了,通常邏輯錯誤的定位和分析是一件非常困難的事情。

Android程序調(diào)試–LogCat

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

所以在學(xué)習(xí)Android過程中,繼學(xué)習(xí)它的程序結(jié)構(gòu),寫了HelloWorld和一些簡單的界面布局程序之后,我選擇研究一下它的調(diào)試工具。 LogCat就是其中一個。LogCat是用來獲取系統(tǒng)日志信息的工具,它可以捕獲的信息包括Dalvik虛擬機產(chǎn)生的信息,進(jìn)程信 息,ActivityManager信息,PackagerManager信息,Android運行時信息和應(yīng)用程序信息等等。

我們可以在打開Eclipse之后,選擇Window –> Show View ->Other菜單,然后在Android->LogCat中選擇LogCat,這樣LogCat便會在Eclipse的下方區(qū)域出現(xiàn)了。

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

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

2. [D]:調(diào)試(Debug)信息,輸出顏色是藍(lán)色

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

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

5. [E]:錯誤(Error)信息,輸出顏色為紅色,這里錯誤信息的級別***,其次是警告信息,然后是通知信息和調(diào)試信息,級別***的是詳細(xì)信息。

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

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

在Android程序調(diào)試過程中,首先要引入android.util.Log包,然后使用用來記錄詳細(xì)信息的Log.v()、用來記錄調(diào)試信息的 Log.d()、用來記錄通告信息的Log.i()、用來記錄警告信息的Log.w()、用來記錄錯誤信息的Log.e()這樣五個函數(shù)在程序中設(shè)置“日 志點”。這些函數(shù)的***個參數(shù)是日志標(biāo)簽TAG(就是在你要測試的位置需要一個常量用來標(biāo)記,標(biāo)記的名字就是所謂的日志標(biāo)簽),第二個參數(shù)是實際的信息內(nèi) 容。每當(dāng)程序運行到我們設(shè)置的“日志點”時,應(yīng)用程序的日志信息便被發(fā)送到LogCat中,我們就可以根據(jù)“日志點”顯示的信息與預(yù)期我們在函數(shù)中設(shè)置的 信息內(nèi)容是否一致來判斷程序是否存在錯誤,這樣就能根據(jù)“日志點”來迅速找到錯誤的“出事地點”了。

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

  1.  package wt.relativeLayout; 
  2.  
  3.   
  4.  
  5. import android.app.Activity; 
  6.  
  7. import android.os.Bundle; 
  8.  
  9. import android.util.Log; 
  10.  
  11. import android.widget.Button; 
  12.  
  13. import android.widget.EditText; 
  14.  
  15. import android.widget.TextView; 
  16.  
  17. import android.util.Log; 
  18.  
  19.   
  20.  
  21. public class RelativeLayout extends Activity { 
  22.  
  23. final static String TAG = "LOGCAT"
  24.  
  25. private TextView tv = null
  26.  
  27. private EditText et = null
  28.  
  29. private Button btn1 = null
  30.  
  31. private Button btn2 = null
  32.  
  33.     @Override 
  34.  
  35.     public void onCreate(Bundle savedInstanceState) { 
  36.  
  37.         super.onCreate(savedInstanceState); 
  38.  
  39.         setContentView(R.layout.main); 
  40.  
  41.         tv = (TextView)findViewById(R.id.label); 
  42.  
  43.         et = (EditText)findViewById(R.id.entry); 
  44.  
  45.         btn1 = (Button)findViewById(R.id.cancel); 
  46.  
  47.         btn2 = (Button)findViewById(R.id.ok); 
  48.  
  49.         tv.setText(R.string.name); 
  50.  
  51.         btn1.setText(R.string.button1); 
  52.  
  53.         btn2.setText(R.string.button2); 
  54.  
  55.   
  56.  
  57.         Log.v(TAG, "This is Verbose"); 
  58.  
  59.         Log.d(TAG, "This is Debug"); 
  60.  
  61.         Log.i(TAG, "This is Info"); 
  62.  
  63.         Log.w(TAG, "This is Warn"); 
  64.  
  65.         Log.e(TAG, "This is Error"); 
  66.  
  67.     } 
  68.  
  69. }  
程序運行后,LogCat捕獲得到應(yīng)用程序發(fā)送的日志信息,顯示結(jié)果如下圖:

通過結(jié)果我們發(fā)現(xiàn),即使我們事先選擇了某個特定的日志信息的級別,產(chǎn)生的日志信息還是有很多,需要我們逐條去閱讀,給我們帶來很大的麻煩。這時我們就要用 到一個LogCat提供的“過濾”功能了,在右上角的“+”號和“-”號,分別是添加和刪除過濾器。我們可以根據(jù)日志信息的標(biāo)簽(Tag)、產(chǎn)生日志的進(jìn) 程編號(Pid)或者信息等級(Level),對顯示的日志內(nèi)容進(jìn)行過濾。在實際使用中,我們***為每一個類聲明一個字符串常量TAG,這樣在 Logcat中我們可以容易區(qū)分不同的類的日志了。

下面使用在LogCat右上角的“+”號,添加一個名為LogcatFilter的過濾器,并設(shè)置過濾條件為“標(biāo)簽=LOGCAT”,下圖為過濾器的具體設(shè)置方法:

過濾器設(shè)置好后,LogcatFilter過濾后的日志信息如下圖,這樣,無論什么類型的日志信息,屬于哪個進(jìn)程,只要標(biāo)簽為LOGCAT,都將顯示在LogcatFilter內(nèi)。

運行測試后,對logCat中的log通過配置l過濾器進(jìn)行過濾

http://s8.51cto.com/wyfs02/M02/40/05/wKioL1PN9i-TUJjqAAAiq1cfXf8076.jpg

本文鏈接:http://my.oschina.net/liuher/blog/293594

責(zé)任編輯:chenqingxiang 來源: oschina
相關(guān)推薦

2010-01-26 14:59:29

Android調(diào)試程序

2021-06-01 21:23:43

嵌入式開發(fā)日志

2010-01-28 11:26:39

Android log

2011-08-22 09:59:16

2013-05-20 15:04:02

Android調(diào)試查看日志Android開發(fā)

2011-06-01 15:49:00

Android 測試

2016-12-02 21:09:24

Android Stusmalideasmail

2009-05-30 09:29:52

AndroidGoogle移動OS

2010-03-16 14:20:57

Java多線程調(diào)試

2011-06-22 10:48:35

PHP

2023-10-25 09:26:23

Linux工具

2011-07-18 17:39:31

ORACLE操作系統(tǒng)

2010-02-05 18:04:36

Android程序框架

2013-02-20 16:14:39

Android開發(fā)內(nèi)存泄露

2010-03-01 11:06:52

Python 調(diào)試器

2024-02-27 22:31:58

Golang日志優(yōu)化

2012-12-28 10:01:31

Android瀏覽器廣告過濾

2010-02-07 10:21:27

Android應(yīng)用程序

2019-07-10 09:12:20

程序員級別跳槽

2021-06-15 20:59:14

Kubernetes調(diào)試容器
點贊
收藏

51CTO技術(shù)棧公眾號