本著踩坑Kotlin的態度, 寫了一個Kotlin的log庫.使用起來很方便. 大家學習Kotlin的可以看一下.
Github: github.com/Jerey-Jobs/…
無論什麼語言, 程式設計師都需要輸出log, Kotlin的語法擴充套件功能可為我們帶來更新奇的輸出log模式.
輸出log的目的,無非兩種情況
1.用來表明程式執行到哪了
2.列印資料處理前後的值
那麼Klog帶來了資料邊處理邊列印的模式.
Klog簡介 (what is Klog?)
Klog是用Kotlin所寫的,利用其類擴充套件,實現了鏈式呼叫時,在不破壞其程式碼整體性的情況下,能夠實現資料列印跟蹤的log庫.
優點:
1.鏈式列印
2.自動識別呼叫方類名為TAG
3.列印執行緒號,程式碼行 (預設不開啟,需要開啟請Klog.getSettings().setBorderEnable(true)
)
4.列印等級控制缺點:
由於Kotlin對於伴生類方法的惰性載入優化, 在kt中呼叫可以使用Klog.d("hello")
,但是在java中,其使用的是內部類的方式實現惰性載入.
因此在java中, 呼叫方式變為了Klog.Companion.i("test");
有更好的實現方式的歡迎pr or issues
獲取
project's build.gradle
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}複製程式碼
module's build.gradle (模組的build.gradle)
dependencies {
compile 'com.github.Jerey-Jobs:Klog:v0.2'
}複製程式碼
說明(Explanation)
這種邊處理字串邊列印的模式.
str.log() //直接輸出該物件toString
.toUpperCase()
.log("upper") //輸出帶提示的處理結果
.toLowerCase() //繼續處理
.log("lower")複製程式碼
又比如在lambda時,我們除錯時需要跟蹤資料被處理的情況
var list = arrayListOf<String>("aaa", "bb", "cccc", "ddddd")
list.log("init")
.map { it -> it.toUpperCase() }
.log("after map")
.filter { it -> it.length > 2 }
.log("after filter")複製程式碼
又或者,我們需要直接列印
//修改Klog設定, 開啟邊框列印
Klog.getSettings()
.setBorderEnable(true)
Klog.a("aaaaaaa") //普通log輸出方式1
Klog.a(contents = "bbbbb") //普通log輸出方式2
Klog.i("jerey", "aaaaaaa") //帶tag輸出複製程式碼
so, Kotlin的類擴充套件為我們帶來無限遐想,我們可以乾的事情還有很多很多
歡迎Star!!
Github: github.com/Jerey-Jobs/…
本文作者:Anderson/Jerey_Jobs
部落格地址 : jerey.cn/
簡書地址 : Anderson大碼渣
github地址 : github.com/Jerey-Jobs