iT邦幫忙

2025 iThome 鐵人賽

DAY 20
0

終於剩下1/3了,有種莫名的感動,雖然是志在參與,在這過程中自己也學到了很多東西,剩下10天繼續加把勁
今天稍微小小休息下,簡單講個在Android Studio開發中,debug時會用到的小工具:Logcat,那就開始吧/ᐠ .ᆺ. ᐟ\ノ

Logcat小介紹

Logcat是內建於 Android Studio 的一個視窗工具,它會收集並顯示來自模擬器或實體裝置的日誌訊息,這些訊息包含了從你自己的 App 到 Android 系統服務的各種輸出,透過分析這些訊息,你可以準確了解程式在執行期間發生了什麼事
以防你找不到他,他就在Android Studio 的左下角,鑽石的下面那隻貓
https://ithelp.ithome.com.tw/upload/images/20251004/20176154yptYMr0nOh.png

Log Levels

為了方便管理和篩選,Android 將日誌訊息分為六個級別,由低到高分別是:

級別 對應方法 說明
Verbose Log.v() 詳細資訊 最低級別,用於輸出最詳盡的日誌,通常只在開發的特定階段短暫使用
Debug Log.d() 除錯 用於輸出開發過程中的除錯訊息,幫助追蹤變數值或程式流程
Info Log.i() 資訊 用於輸出有意義的資訊,幫助分析使用者行為或程式執行到某個重要節點
Warn Log.w() 警告 用於輸出潛在的問題或預期之外的狀況,這些狀況還不至於造成錯誤
Error Log.e() 錯誤 用於輸出程式執行時發生的錯誤,例如 try-catch 區塊中捕獲到的例外
Assert Log.a() 斷言 最高級別,用於指示一個開發者認為絕不應該發生的嚴重問題

在Logcat視窗中,你可以設定篩選級別,例如選擇Info,那麼Info、Warn、Error 和Assert 級別的日誌都會被顯示出來

在Java中輸出日誌

使用 android.util.Log 這個類別
基本語法:Log.d(String tag, String message);

  • tag:一個字串,用來標示日誌訊息的來源,通常設定為目前的類別名稱 (ClassName.class.getSimpleName())使用固定的tag 可以方便你在 Logcat 中快速篩選出特定來源的訊息
  • message:你想要輸出的具體訊息內容

範例

這邊就寫幾行簡單的範例

//用Log.d追蹤App生命週期
Log.d(TAG, "onCreate: Activity正在被建立");

//用Log.i說明資訊更新
Log.i(TAG, "Info: 使用者分數已更新為: " + userScore);

//用Log.w記錄警告
Log.w(TAG, "Warn: 分數已超過50,請注意");

//用Log.e記錄錯誤
Log.e(TAG, "Error: 計算時發生錯誤", e);

使用Logcat的技巧

  • 使用 TAG 篩選:在 Logcat 視窗的搜尋框中輸入你定義的TAG ,就可以只看到來自這個類別的日誌,排除所有系統和其他 App 的干擾
  • 使用關鍵字篩選:直接在搜尋框輸入你的關鍵字,例如分數或Error
  • 使用 package:mine:在搜尋框輸入package:mine 可以只顯示來自你目前正在開發的 App 的日誌
  • 清理日誌:在發布App 的正式版之前,移除或透過 ProGuard/R8 設定自動移除 Log.dLog.v 的日誌,避免洩漏 App 內部資訊
  • 點擊導航:Logcat中輸出的錯誤堆疊訊息通常是藍色的,點擊這些帶有底線的類別名稱和行號,可以直接跳轉到程式碼中對應的位置

那今天的Logcat就到這裡了,明天來講一下我遺忘的Fragment部分,明天見(.ᆺ. )
Lagcat /images/emoticon/emoticon01.gif

https://ithelp.ithome.com.tw/upload/images/20251004/20176154U5qsaacPIN.png


上一篇
Day19 RecyclerView介紹2
下一篇
Day21 Fragment介紹
系列文
Android 菜鳥30天從0到1的學習紀錄21
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言