![](https://1.bp.blogspot.com/-tbZqgYDZXPM/YBePuz5FwaI/AAAAAAAAFPk/_bc-46HxZxcdZNijnAllTOe4CzpCOcMTACLcBGAsYHQ/s320/%25E6%2588%25AA%25E5%259C%2596%2B2021-01-30%2B%25E4%25B8%258B%25E5%258D%25884.42.18.png) |
透過紀錄與未來的自己對話 |
Debug 是寫程式時會需要的一個基本技能,當程式發生錯誤就需要去 Tracking 查看是哪裡有問題,可能是變數值設定錯誤或呼叫錯誤的 function 等。最簡單的的方法是在執行流程中印 Log ,把懷疑的變數跟所有回傳的值都印出來,雖然是土法煉鋼,但是可以找到答案。而印 Log 的方式有很多種,可以按照習慣的方式來記錄,不必等到有問題時才去印,平常在寫程式碼時,如果擔心某個參數的值會錯誤或流程是否會進行,就可以先把紀錄的程式碼加入,方便之後追蹤。
基本的 API
Logcat 可以查看是哪一個專案正在執行,以及執行的時間
msg 內容也可以放入參數或自行去修改想顯示的資訊
![](https://1.bp.blogspot.com/-UWIPUbEGKQw/YB4PueaU2VI/AAAAAAAAFUA/1JKKVwqNvDE136lO0z1H2Jyb6J3ixKIyQCLcBGAsYHQ/w640-h54/%25E6%2588%25AA%25E5%259C%2596%2B2021-02-06%2B%25E4%25B8%258A%25E5%258D%258811.39.36.png) |
顯示當前 mode 狀態 |
![](https://1.bp.blogspot.com/-Bq09AXrf8iE/YB4QELcBn6I/AAAAAAAAFUM/UDZGQ9ZF_QwtGPMrBVeuqdQPsJeFjmOVACLcBGAsYHQ/w640-h80/%25E6%2588%25AA%25E5%259C%2596%2B2021-02-06%2B%25E4%25B8%258A%25E5%258D%258811.41.32.png) |
顯示結果 |
![](https://1.bp.blogspot.com/-E_tSfWk7GuI/YB4RkLacprI/AAAAAAAAFUc/MacKPNapSs0LfbRJqdZypapuE3gDNJxRgCLcBGAsYHQ/w640-h36/%25E6%2588%25AA%25E5%259C%2596%2B2021-02-06%2B%25E4%25B8%258A%25E5%258D%258811.46.01.png) |
操作畫面 |
需要注意的地方
![](https://1.bp.blogspot.com/-3cCq66X6VxI/YB4SXQ_EaBI/AAAAAAAAFUk/OFqnOPpzhQkLjSsGbO3v3ZYmI03u2UvVQCLcBGAsYHQ/w400-h189/%25E6%2588%25AA%25E5%259C%2596%2B2021-02-06%2B%25E4%25B8%258A%25E5%258D%258811.51.15.png) |
如果想要查看 app 以外的 Log 資訊,可以切換到 No Filter |
Android Studio 也有提供自訂的功能,點選 Edit Filter Configuration
![](https://1.bp.blogspot.com/-OvBpMRhojfI/YB4S7m326SI/AAAAAAAAFUs/bhzQxgCDk2wKZc66Dwmxm5SDREKFQVwFACLcBGAsYHQ/w400-h181/%25E6%2588%25AA%25E5%259C%2596%2B2021-02-06%2B%25E4%25B8%258A%25E5%258D%258811.54.08.png) |
這邊可以調整的參數很多,可以依照需求去設定 |
![](https://1.bp.blogspot.com/-o-lzWNSJz9s/YB4TYQ4deCI/AAAAAAAAFU4/gN8JQjykpp8emb9HVZLgBe5xIBAEz66FQCLcBGAsYHQ/w400-h145/%25E6%2588%25AA%25E5%259C%2596%2B2021-02-06%2B%25E4%25B8%258A%25E5%258D%258811.55.53.png) |
比較常使用到的是 Tag, Message 篩選 |
設定完成結果
![](https://1.bp.blogspot.com/-Cg36ORceFiQ/YB4ZyccMZDI/AAAAAAAAFV0/Zrz1puPVvY0WDpMHLBeSWyhvV5RElpLCgCLcBGAsYHQ/s320/%25E6%2588%25AA%25E5%259C%2596%2B2021-02-06%2B%25E4%25B8%258B%25E5%258D%258812.23.22.png) |
這邊需要注意的是 Log.d, Log.v, Log.i, Log.w, Log.e 要對應到 function |
![](https://1.bp.blogspot.com/-o3edK2s4w5g/YB4ah8LD08I/AAAAAAAAFV8/0hFh6tQy5AYWWiG-e-CunOgg47PP5h20gCLcBGAsYHQ/s320/%25E6%2588%25AA%25E5%259C%2596%2B2021-02-06%2B%25E4%25B8%258B%25E5%258D%258812.26.29.png) |
呼叫 LogUtil 時,需要填入 msg |
![](https://1.bp.blogspot.com/-zFE34uGKrNI/YB4az4He6rI/AAAAAAAAFWE/2f7bNXnaz3ozkYEkpK94z9_MWPKjV3nxwCLcBGAsYHQ/w640-h90/%25E6%2588%25AA%25E5%259C%2596%2B2021-02-06%2B%25E4%25B8%258B%25E5%258D%258812.27.44.png) |
LogCat 印出結果會顯示相關的資訊 |
implementation 後可以直接使用,畫面比較美觀,且內部設定可以透過 Builder 調整.
![](https://1.bp.blogspot.com/-9tPHW6ZlSEA/YB4cLTg-E4I/AAAAAAAAFWQ/T69TGfJ1gXEdOtTFjD-OWt3U-clOIRxJwCLcBGAsYHQ/w400-h79/%25E6%2588%25AA%25E5%259C%2596%2B2021-02-06%2B%25E4%25B8%258B%25E5%258D%258812.32.09.png) |
最新版本 2.2.0 |
![](https://1.bp.blogspot.com/-C6E_1KoYCO0/YB4hrL8gJCI/AAAAAAAAFWc/qaLCTnZHmjwyEqmg5PRh3ol1s66pBnntwCLcBGAsYHQ/w640-h150/%25E6%2588%25AA%25E5%259C%2596%2B2021-02-06%2B%25E4%25B8%258B%25E5%258D%258812.57.02.png) |
先執行 initial 動作,做參數設定的動作 |
![](https://1.bp.blogspot.com/-rOy2xC8uwdI/YB4jH0Ej6lI/AAAAAAAAFWo/xurFt43DKWoeoIeZCGWQOnpbw8TCRTPKACLcBGAsYHQ/w400-h86/%25E6%2588%25AA%25E5%259C%2596%2B2021-02-06%2B%25E4%25B8%258B%25E5%258D%25881.02.38.png) |
也有提供 Default 模板,呼叫 Logger 即可以使用 |
![](https://1.bp.blogspot.com/-oQVz6agjqqw/YB4jcx089XI/AAAAAAAAFWw/osbBuPuRCTc_Zb5OiidhRUyiXnAxrATKQCLcBGAsYHQ/w640-h350/%25E6%2588%25AA%25E5%259C%2596%2B2021-02-06%2B%25E4%25B8%258B%25E5%258D%25881.04.34.png) |
Log 顯示結果,藍色行數部分點擊即可跳至程式碼位置 |
後記平常可以印一些 Log 幫助記憶,至於中文或英文可以看團隊內的規定,畢竟如果有一些程式碼需要打包成 API 出去供大家使用,那麼英文會是比較好的選擇.並且人的腦袋沒有辦法記住那麼多東西,留下紀錄若出現問題也可以比較快速的查到問題.
如果這篇文章對你有幫助,可以幫忙分享給需要的人,若文章內容有誤,可以留言告訴我.
END
留言
張貼留言