代碼上下文補全
public class MyActivity extends Activity {
private static final String TAG = "MyActivity"; // 類級常量
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
super.onKeyDown(keyCode, event);
Log.i(TAG, "onKeyDown方法被調用"); // Log 是 android.util.Log
return true;
}
}
三要素來源
| 符號 | 完整類名 | 來源 |
Log | android.util.Log | Android SDK 核心庫,無需導入即可使用 (隱式導入) |
i | public static int i(String tag, String msg) | Log 類的靜態方法,級別 INFO |
TAG | String 常量 | 開發者自定義,通常為類名,用於日誌過濾 |
日誌級別對照
Log.v (Verbose) → Log.d (Debug) → Log.i (Info) → Log.w (Warn) → Log.e (Error) → Log.wtf (What a Terrible Failure)
最佳實踐
- 定義 `private static final String TAG = MyClass.class.getSimpleName();` 避免硬編碼錯誤。
- 發布版使用 `BuildConfig.DEBUG` 條件編譯移除 `Log.v/d/i`,保留 `w/e`。
- 使用
Logcat 過濾器:`tag:MyActivity` 快速定位。