前面我已經(jīng)寫過(guò)一篇這個(gè)標(biāo)題的文章,因?yàn)楫?dāng)時(shí)的代碼還存在一些bug,并沒(méi)有把這個(gè)項(xiàng)目放到github上我總覺(jué)得有一絲遺憾,這次修復(fù)了bug加了一些新功能還折騰了半天把它上傳到j(luò)center上,所以打算再寫一篇。
先放github地址:
https://github.com/fengzhizi715/SAF-Kotlin-log
下載安裝
Gradle:
compile 'com.safframework.log:saf-log:1.0.1'
Maven:
<dependency>
<groupId>com.safframework.log</groupId>
<artifactId>saf-log</artifactId>
<version>1.0.1</version>
<type>pom</type>
</dependency>
特性
支持以下幾種日志級(jí)別,除此之外還能將任何對(duì)象打印成json格式
方法名 | 作用 | 備注 |
---|---|---|
e() | Error級(jí)別打印日志 | |
w() | Warn級(jí)別打印日志 | |
i() | Info級(jí)別打印日志 | |
d() | Debug級(jí)別打印日志 | |
json() | 將日志以json格式打印出來(lái) | 支持任意對(duì)象 |
以e、w、i、d打印的日志風(fēng)格如下:
第一行顯示線程名
第二行顯示類中打印的行數(shù)
第三行顯示打印的具體內(nèi)容
╔════════════════════════════════════════════════════════════════════════════════════════
║ Thread: main
╟────────────────────────────────────────────────────────────────────────────────────────
║ cn.salesuite.saf.aspects.TraceAspect.traceMethod (TraceAspect.java:35)
╟────────────────────────────────────────────────────────────────────────────────────────
║ loadUser() take [14ms]
╚════════════════════════════════════════════════════════════════════════════════════════
json方法可以將String、Map、對(duì)象打印成json風(fēng)格,具體可以參照下圖:
使用方法
首先,使用它無(wú)需添加kotlin的配置。它可以在任何android項(xiàng)目中使用。
如果不考慮顯示日志的tag,可以直接使用
String s = "abcd";
L.i(s);
如果需要使用tag,可以在Activity的onCreate()中添加如下的代碼,類名則對(duì)應(yīng)是tag的名稱
L.init(this.getClass());
當(dāng)然,init()除了支持傳遞class對(duì)象,還支持傳String對(duì)象。
除此之外,還可以設(shè)置全局的日志級(jí)別,最好在Application中進(jìn)行全局的配置。
java中的使用方法:
L.setLogLevel(L.LogLevel.INFO);
kotlin中的使用方法:
L.logLevel= L.LogLevel.INFO
最后,json方法的使用
Object obj = ...
L.json(obj);
總結(jié)
kotlin用來(lái)做一些小工具還是挺爽的。如果覺(jué)得不爽,歡迎吐槽_
下一篇應(yīng)該會(huì)寫一下用kotlin實(shí)現(xiàn)activity的路由框架。