Klog - 利用Kotlin的類擴展,爲你的log輸出帶來無限遐想

本着踩坑Kotlin的態度, 寫了一個Kotlin的log庫.使用起來很方便. 你們學習Kotlin的能夠看一下.
Github: github.com/Jerey-Jobs/…java

不管什麼語言, 程序員都須要輸出log, Kotlin的語法擴展功能可爲咱們帶來更新奇的輸出log模式.git

輸出log的目的,無非兩種狀況
1.用來代表程序執行到哪了
2.打印數據處理先後的值程序員

那麼Klog帶來了數據邊處理邊打印的模式.github

Klog簡介 (what is Klog?)

Klog是用Kotlin所寫的,利用其類擴展,實現了鏈式調用時,在不破壞其代碼總體性的狀況下,可以實現數據打印跟蹤的log庫.maven

  • 優勢:

    1.鏈式打印
    2.自動識別調用方類名爲TAG
    3.打印線程號,代碼行 (默認不開啓,須要開啓請 Klog.getSettings().setBorderEnable(true))
    4.打印等級控制學習

  • 缺點:

    因爲Kotlin對於伴生類方法的惰性加載優化, 在kt中調用可使用 Klog.d("hello"),可是在java中,其使用的是內部類的方式實現惰性加載.
    所以在java中, 調用方式變爲了 Klog.Companion.i("test");gradle

有更好的實現方式的歡迎pr or issues優化

獲取

project's build.gradleui

allprojects {
          repositories {
              ...
              maven { url 'https://jitpack.io' }
          }
      }複製代碼

module's build.gradle (模塊的build.gradle)url

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")複製代碼

klog3.png

又或者,咱們須要直接打印

//修改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

相關文章
相關標籤/搜索