Android | Kotlin 自定義一個(gè)舒服的Log對(duì)象
????????Android開(kāi)發(fā)中,調(diào)試是必不可少的環(huán)節(jié),android.util中給我們提供了一個(gè)Log日志打印,但是需要提供一個(gè)tag和一個(gè)msg字符串參數(shù),使用起來(lái)往往非常麻煩,摸索了一番,我找到了一個(gè)比較舒服的自定義方式,實(shí)現(xiàn)了多參數(shù)打印以及調(diào)用位置的追蹤。
????????此方法是我今天做出來(lái)的,我不知道會(huì)不會(huì)有什么未知的問(wèn)題,就結(jié)果來(lái)看這個(gè)方式是有用的。
????????我自定義了一個(gè)object對(duì)象Console,并在其中定義了log、info、warn、err四個(gè)方法,分別對(duì)應(yīng)Log.d、Log.i、Log.w、Log.e。此外,我還定義了一個(gè)私有方法generateLog用于拼接可變參數(shù),生成最終的打印消息(這里的拼接可以根據(jù)需要自行修改)。除此之外,因?yàn)樵诤罄m(xù)代碼量增大時(shí)可能會(huì)需要追蹤Log的位置,通過(guò)Thread.currentThread().stackTrace的第三個(gè)元素(我是一個(gè)個(gè)遍歷最終才找到的第三個(gè))來(lái)獲取到調(diào)用當(dāng)前方法位置(類名以及方法名)。具體代碼及演示如下:
在MainActivity.kt中調(diào)用(寫(xiě)了一個(gè)Log.w做對(duì)比):
運(yùn)行結(jié)果(這里我把包名手動(dòng)隱藏了):
