文章目錄
- 一、Android 日志系統基礎
- 1. Log 類
- 2. 日志級別
- 二、Android Studio 中的 Logcat
- 1. 打開 Logcat
- 2. Logcat 界面組成
- 3. 常用 Logcat 命令
- 三、高級日志技巧
- 1. 自定義日志工具類
- 2. 打印方法調用棧
- 3. 打印長日志
- 4. JSON 和 XML 格式化輸出
- 四、Logcat 高級功能
- 1. 自定義日志格式
- 2. 保存日志到文件
- 3. 使用命令行 Logcat
- 4. 條件日志記錄
- 五、日志最佳實踐
- 六、常見問題解決
- 七、替代日志方案

Android 開發中的日志系統是調試和問題排查的重要工具,下面我將全面介紹 Android Studio 中的日志功能和使用方法。
一、Android 日志系統基礎
1. Log 類
Android 提供了 android.util.Log
類用于輸出日志,包含以下常用方法:
Log.v(String tag, String msg); // Verbose - 最詳細日志
Log.d(String tag, String msg); // Debug - 調試信息
Log.i(String tag, String msg); // Info - 重要信息
Log.w(String tag, String msg); // Warn - 警告信息
Log.e(String tag, String msg); // Error - 錯誤信息
Log.wtf(String tag, String msg); // Assert - 嚴重錯誤
2. 日志級別
級別 | 方法 | 說明 |
---|---|---|
VERBOSE | Log.v() | 最詳細日志,開發調試使用 |
DEBUG | Log.d() | 調試信息,發布時應移除 |
INFO | Log.i() | 重要運行信息 |
WARN | Log.w() | 潛在問題警告 |
ERROR | Log.e() | 錯誤信息,但不影響應用繼續運行 |
ASSERT | Log.wtf() | 嚴重錯誤,通常會導致應用崩潰 |
二、Android Studio 中的 Logcat
Logcat 是 Android Studio 內置的日志查看工具,可以查看設備或模擬器的系統日志和應用日志。
1. 打開 Logcat
- 方式1:底部工具欄點擊 “Logcat” 標簽
- 方式2:菜單欄 View → Tool Windows → Logcat
- 快捷鍵:Alt+6 (Windows/Linux) 或 Command+6 (macOS)
2. Logcat 界面組成
- 設備選擇下拉框:選擇要查看日志的設備
- 應用選擇下拉框:選擇要查看的應用進程
- 日志級別篩選:可按級別過濾日志
- 搜索框:可按關鍵字搜索日志
- 日志顯示區域:顯示日志內容
- 日志配置菜單:自定義日志顯示格式
3. 常用 Logcat 命令
在 Logcat 搜索框中可以使用以下語法:
tag:MyTag
- 按標簽過濾level:error
- 按級別過濾package:mine
- 只看當前應用日志"keyword"
- 按關鍵字搜索tag:MyTag level:error
- 組合條件
三、高級日志技巧
1. 自定義日志工具類
public class LogUtil {private static final String DEFAULT_TAG = "MyApp";private static final boolean DEBUG = BuildConfig.DEBUG;public static void v(String tag, String msg) {if (DEBUG) Log.v(tag, msg);}public static void d(String tag, String msg) {if (DEBUG) Log.d(tag, msg);}public static void i(String tag, String msg) {Log.i(tag, msg);}public static void w(String tag, String msg) {Log.w(tag, msg);}public static void e(String tag, String msg) {Log.e(tag, msg);}// 自動獲取類名作為tagpublic static void d(Object object, String msg) {if (DEBUG) {String tag = object.getClass().getSimpleName();Log.d(tag, msg);}}
}
2. 打印方法調用棧
Log.d("TAG", "Current call stack:", new Throwable());
3. 打印長日志
Android 的 Logcat 有長度限制,可以使用以下方法打印長日志:
public static void longLog(String tag, String content) {if (content.length() > 4000) {Log.d(tag, content.substring(0, 4000));longLog(tag, content.substring(4000));} else {Log.d(tag, content);}
}
4. JSON 和 XML 格式化輸出
public static void logJson(String tag, String json) {try {String prettyJson = new JSONObject(json).toString(4);Log.d(tag, prettyJson);} catch (JSONException e) {Log.e(tag, "Invalid JSON: " + json);}
}
四、Logcat 高級功能
1. 自定義日志格式
點擊 Logcat 右上角的齒輪圖標 → “Edit Filter Configuration” 可以:
- 修改日志顯示格式
- 添加自定義字段
- 保存日志過濾器
2. 保存日志到文件
- 點擊 Logcat 工具欄的 “Export” 按鈕
- 選擇保存位置和文件名
- 可以選擇保存當前顯示的日志或完整日志
3. 使用命令行 Logcat
# 查看日志
adb logcat# 按標簽過濾
adb logcat -s MyTag# 按級別過濾
adb logcat *:E# 清除日志
adb logcat -c# 將日志保存到文件
adb logcat > log.txt
4. 條件日志記錄
if (BuildConfig.DEBUG) {Log.d("TAG", "Debug information");
}
五、日志最佳實踐
-
標簽命名規范:
- 使用類名作為標簽:
private static final String TAG = MainActivity.class.getSimpleName();
- 保持標簽簡潔明了
- 使用類名作為標簽:
-
日志內容規范:
- 包含足夠上下文信息
- 避免記錄敏感信息(如密碼、token等)
- 生產環境移除調試日志
-
性能考慮:
- 避免在循環中記錄大量日志
- 字符串拼接使用 StringBuilder
-
發布應用處理:
- 使用 ProGuard 移除調試日志
- 或使用日志工具類控制日志輸出
if (BuildConfig.DEBUG) {// 調試日志
}
六、常見問題解決
-
Logcat 不顯示日志:
- 檢查設備是否連接
- 檢查是否選擇了正確的應用進程
- 嘗試重啟 ADB:
adb kill-server && adb start-server
-
日志太多難以查找:
- 使用過濾器
- 添加唯一標識符到你的日志
- 使用
package:mine
只看當前應用日志
-
日志丟失或不全:
- 增加日志緩沖區大小:
adb logcat -G 4M
- 及時保存重要日志
- 增加日志緩沖區大小:
-
性能分析日志:
- 使用
adb shell dumpsys
獲取系統信息 - 使用 Android Profiler 進行性能分析
- 使用
七、替代日志方案
-
Timber:流行的日志庫,提供更簡潔的API
Timber.d("Debug message with %s", argument);
-
Logger:美觀的日志格式化庫
Logger.d("Hello %s", "World");
-
Crashlytics:崩潰日志收集
FirebaseCrashlytics.getInstance().log("Important event");
-
自定義日志系統:將日志發送到服務器進行分析
通過合理使用 Android Studio 的日志功能,可以大大提高開發效率和問題排查能力。建議根據項目需求建立統一的日志規范,并在團隊中貫徹執行。