Android 中使用日誌功能
一、Android 日誌工具類:Log
Android SDK 提供了專門的日誌工具類 android.util.Log,它提供了 5 個級別的日誌方法,按優先級從低到高排列:
| 方法 | 級別 | 說明 |
|---|---|---|
Log.v() | Verbose | 最低級別,用於輸出最瑣碎的日誌資訊 |
Log.d() | Debug | 除錯資訊,開發時最常用 |
Log.i() | Info | 一般提示性資訊 |
Log.w() | Warn | 警告資訊,可能存在潛在風險 |
Log.e() | Error | 錯誤資訊,例如進入 catch 例外 |
二、基本用法
在 MainActivity 的 onCreate() 方法中加入日誌:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 輸出 Info 級別的日誌
Log.i("foxdevelop", "xxxxxx");
}Code language: JavaScript (javascript)
方法參數說明:
| 參數 | 說明 |
|---|---|
| 第一個參數(tag) | 日誌標籤,通常用簡短字串標識來源,方便過濾 |
| 第二個參數(msg) | 日誌內容,即你想輸出的訊息 |
執行專案後,開啟 Logcat 視窗即可看到輸出的日誌。

三、Logcat 視窗使用技巧
| 功能 | 操作 |
|---|---|
| 查看日誌 | 執行應用後,底部 Logcat 面板自動顯示 |
| 關鍵字搜尋 | 在 Logcat 搜尋框輸入關鍵字(如 foxdevelop)過濾 |
| 依級別過濾 | 點擊下拉選單選擇 Show only selected application / No Filters / Edit Filter Configuration |
| 依 tag 過濾 | 在搜尋框輸入 tag:foxdevelop |
四、為什麼不建議用 System.out.println()
| 對比項目 | System.out.println | Log |
|---|---|---|
| 可控性 | 不可控 | 可透過級別和過濾器控制 |
| 時間資訊 | 無時間戳 | 每條日誌帶精確時間 |
| 過濾器 | 無法依 tag 過濾 | 支援 tag、級別、程序等多維過濾 |
| 日誌級別 | 無級別區分 | 5 個級別,方便定位問題 |
| 正式環境 | 無法關閉 | 可設定關閉或僅輸出特定級別 |
// 不推薦
System.out.println("xxxxxxx");
// 推薦
Log.i(TAG, "Foxdevelop");Code language: JavaScript (javascript)

五、Android Studio 日誌快捷鍵
AS 提供了強大的 Live Template 快捷鍵,輸入後按 Tab 自動補全:
| 快捷鍵(輸入後按 Tab) | 產生程式碼 | 說明 |
|---|---|---|
logd | Log.d(TAG, "onCreate: "); | 產生 Debug 日誌 |
logi | Log.i(TAG, "onCreate: "); | 產生 Info 日誌 |
logw | Log.w(TAG, "onCreate: "); | 產生 Warn 日誌 |
loge | Log.e(TAG, "onCreate: "); | 產生 Error 日誌 |
logv | Log.v(TAG, "onCreate: "); | 產生 Verbose 日誌 |
logt | private static final String TAG = "類別名稱"; | 在類別體中使用,自動產生目前類別名稱作為 TAG |
六、完整範例
public class MainActivity extends AppCompatActivity {
// 在類別體中使用 logt + Tab 自動產生
private static final String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 使用 TAG 常數輸出日誌
Log.i(TAG, "foxdevelop");
Log.e(TAG, "這裡發生例外了");
// 不推薦
System.out.println("xxxxxxx");
}
}Code language: PHP (php)
執行後 Logcat 輸出效果:
I/MainActivity: foxdevelop
E/MainActivity: 這裡發生例外了Code language: HTTP (http)
日誌功能
Previous: build.gradle
Next: 活動