日誌功能

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.printlnLog
可控性不可控可透過級別和過濾器控制
時間資訊無時間戳每條日誌帶精確時間
過濾器無法依 tag 過濾支援 tag、級別、程序等多維過濾
日誌級別無級別區分5 個級別,方便定位問題
正式環境無法關閉可設定關閉或僅輸出特定級別
// 不推薦
System.out.println("xxxxxxx");

// 推薦
Log.i(TAG, "Foxdevelop");Code language: JavaScript (javascript)

五、Android Studio 日誌快捷鍵

AS 提供了強大的 Live Template 快捷鍵,輸入後按 Tab 自動補全:

快捷鍵(輸入後按 Tab)產生程式碼說明
logdLog.d(TAG, "onCreate: ");產生 Debug 日誌
logiLog.i(TAG, "onCreate: ");產生 Info 日誌
logwLog.w(TAG, "onCreate: ");產生 Warn 日誌
logeLog.e(TAG, "onCreate: ");產生 Error 日誌
logvLog.v(TAG, "onCreate: ");產生 Verbose 日誌
logtprivate 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:
Next:

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *