Android日誌Log使用

SoldierJazz2019發表於2017-05-08

Android開發中日誌工具的使用是十分重要的,可以幫助我們定位和查詢程式執行的問題,瞭解程式執行過程等。這裡以 Eclipse 下的的安卓開發為例進行說明。

開啟 LogCat 功能

首先,確保 Eclipse 軟體中已經開啟了日誌工具 LogCat 功能,如果在下方工具欄沒有,可以點選 Eclipse 導航欄中的 Window->Show View->Other,此時會彈出一個 Show View 對話方塊。在 Show View 對話方塊中展開 Android 目錄(也可以直接在文字框輸入 “LogCat”),會看到有一個 LogCat  的子項,如下圖所示,點選 “OK” 確認。


使用 Android 日誌工具 Log

Android 中的日誌工具類是 Log(對應 android.util.Log), 這個類中提供瞭如下幾個方法來供我們列印日誌。

1. Log.v()

這個方法用於列印那些最為瑣碎的,意義最小的日誌資訊。對應級別 verbose,是Android 日誌裡面級別最低的一種。

2. Log.d()

這個方法用於列印一些除錯資訊,這些資訊對你除錯程式和分析問題應該是有幫助的。對應級別 debug,比 verbose 高一級。

3. Log.i()

這個方法用於列印一些比較重要的資料,這些資料應該是你非常想看到的,可以幫你分析使用者行為的那種。對應級別 info,比 debug 高一級。

4. Log.w()

這個方法用於列印一些警告資訊,提示程式在這個地方可能會有潛在的風險,最好去修復一下這些出現警告的地方。對應級別 warn,比 info 高一級。

5. Log.e()

這個方法用於列印程式中的錯誤資訊,比如程式進入到了 catch 語句當中。當有錯誤資訊列印出來的時候,一般都代表你的程式出現嚴重問題了,必須儘快修復。對應級別 error,比 warn 高一級。

下面以簡單的 HelloWorld 工程為例子,演示 Log 的用法。

開啟 HelloWorldActivity,在 onCreate()方法中新增一行列印日誌的語句,如下所示:

public class HelloWorldActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.hello_world_layout);
		Log.d("HelloWorldActivity", "onCreate func");
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.hello_world, menu);
		return true;
	}
}

呼叫的 Log 方法包含兩個字串引數,第一個引數是 tag(標籤),一般傳入當前的類名就好,主要用於為列印資訊新增標籤,可用於區分不同資訊快速定位 Log。第二個引數是文字內容 Text,即想要列印的具體的內容。新增列印資訊後重新執行我們的 Application,在 LogCat 一欄下可以看到日誌內容,如下所示:

可以看到,除了我們新增的 Tag 和 Text 資訊,還有很多其他資訊,依次代表 D(除錯等級)、Time(記錄時間)、PID(程式ID號)、TID(執行緒ID號)、Application(應用名稱)

注意,如果你第一時間沒有看到日誌資訊,可能是因為日誌級別控制設定的太高,在上圖中有個帶下拉箭頭的地方就是用於控制日誌級別的。顯示的原則是隻顯示大於等於該設定級別的日誌訊息,級別的介紹開始已經講過。如果不是因為日誌級別的設定,那麼就要注意觀察是不是訊息太多,導致日誌被重新整理覆蓋了的原因。此時,就要講述下左側過濾器的使用方法了。點選左側 "Saved Filters" 右側的 “+” 號,顯示如下:


最上面的過濾器名稱 "Filter Name" 自定義即可,其餘參考上述講解的欄位含義即可,在這裡我只設定 Tag 標籤即可。設定完,選中過濾器名稱,就可以只檢視滿足設定條件的日誌訊息了。

如果本文對你有幫助就點贊吧。有疑問可以給我郵件或者評論哦~:-D


相關文章