前面我已經寫過一篇這個標題的文章,由於當時的代碼還存在一些bug,並無把這個項目放到github上我總以爲有一絲遺憾,此次修復了bug加了一些新功能還折騰了半天把它上傳到jcenter上,因此打算再寫一篇。java
先放github地址:
https://github.com/fengzhizi715/SAF-Kotlin-logandroid
下載安裝
Gradle:git
compile 'com.safframework.log:saf-log:1.0.1'
Maven:github
<dependency>
<groupId>com.safframework.log</groupId>
<artifactId>saf-log</artifactId>
<version>1.0.1</version>
<type>pom</type>
</dependency>
特性
支持如下幾種日誌級別,除此以外還能將任何對象打印成json格式json
方法名 | 做用 | 備註 |
---|---|---|
e() | Error級別打印日誌 | |
w() | Warn級別打印日誌 | |
i() | Info級別打印日誌 | |
d() | Debug級別打印日誌 | |
json() | 將日誌以json格式打印出來 | 支持任意對象 |
以e、w、i、d打印的日誌風格以下:
第一行顯示線程名
第二行顯示類中打印的行數
第三行顯示打印的具體內容框架
╔════════════════════════════════════════════════════════════════════════════════════════ ║ Thread: main ╟──────────────────────────────────────────────────────────────────────────────────────── ║ cn.salesuite.saf.aspects.TraceAspect.traceMethod (TraceAspect.java:35) ╟──────────────────────────────────────────────────────────────────────────────────────── ║ loadUser() take [14ms] ╚════════════════════════════════════════════════════════════════════════════════════════
json方法能夠將String、Map、對象打印成json風格,具體能夠參照下圖:svg
![](http://static.javashuo.com/static/loading.gif)
打印json格式.png
使用方法
首先,使用它無需添加kotlin的配置。它能夠在任何android項目中使用。工具
若是不考慮顯示日誌的tag,能夠直接使用ui
String s = "abcd"; L.i(s);
若是須要使用tag,能夠在Activity的onCreate()中添加以下的代碼,類名則對應是tag的名稱this
L.init(this.getClass());
固然,init()除了支持傳遞class對象,還支持傳String對象。
除此以外,還能夠設置全局的日誌級別,最好在Application中進行全局的配置。
java中的使用方法:
L.setLogLevel(L.LogLevel.INFO);
kotlin中的使用方法:
L.logLevel= L.LogLevel.INFO
最後,json方法的使用
Object obj = ... L.json(obj);
總結
kotlin用來作一些小工具仍是挺爽的。若是以爲不爽,歡迎吐槽_
下一篇應該會寫一下用kotlin實現activity的路由框架。
本文同步分享在 博客「fengzhizi715」(JianShu)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。