专栏首页Java与Android技术栈用kotlin打印出漂亮的android日志(二)

用kotlin打印出漂亮的android日志(二)

前面我已经写过一篇这个标题的文章,因为当时的代码还存在一些bug,并没有把这个项目放到github上我总觉得有一丝遗憾,这次修复了bug加了一些新功能还折腾了半天把它上传到jcenter上,所以打算再写一篇。

先放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>

特性

支持以下几种日志级别,除此之外还能将任何对象打印成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风格,具体可以参照下图:

打印json格式.png

使用方法

首先,使用它无需添加kotlin的配置。它可以在任何android项目中使用。

如果不考虑显示日志的tag,可以直接使用

String s = "abcd";
L.i(s);

如果需要使用tag,可以在Activity的onCreate()中添加如下的代码,类名则对应是tag的名称

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的路由框架。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 给 Java 和 Android 构建一个简单的响应式Local Cache

    首先,Local Cache 不是类似于 Redis、Couchbase、Memcached 这样的分布式 Cache。Local Cache 适用于在单机环境...

    fengzhizi715
  • Kotlin Coroutines Flow 系列(五) 其他的操作符

    在使用 transform 操作符时,可以任意多次调用 emit ,这是 transform 跟 map 最大的区别:

    fengzhizi715
  • ReentrantReadWriteLock读写锁及其在 RxCache 中的使用

    Lock 是相当于 synchronized 更面向对象的同步方式,ReentrantLock 是 Lock 的实现。

    fengzhizi715
  • 标签打印软件如何打印指定页码

    标签打印软件中有一个功能叫指定页码,很多用户不知道这个功能是怎么使用的,指定页码的意思就是在标签打印软件中制作好标签之后,如果不需要打印全部的内容,只需要打印特...

    用户5746110
  • 文件上传速度查询方法

    由于业务迁移,需要将大量文件拷贝到目标机器上的/mnt目录,在拷贝过程中,想要查看上传的速度,做法如下: [root@mail01 ~]# du -sh /mn...

    洗尽了浮华
  • Python这10个字典操作你必须知道

    不要使用 key in d.keys(), 这是一种画蛇添足的操作,因为d.keys()会返回一个新的列表对象,导致内存最大。

    华章科技
  • Hacker基础之工具篇 啊D

    Python基础教程我们已经学完了,现在是时候介绍一下渗透工具了 PS: 最近没法发实战教程,你懂的 ? 啊D 啊D注入工具是一种主要用于SQL注入的工具,...

    用户1631416
  • 彻底搞懂 etcd 系列文章(七):etcd gRPC 服务 API

    etcd 是云原生架构中重要的基础组件,由 CNCF 孵化托管。etcd 在微服务和 Kubernates 集群中不仅可以作为服务注册与发现,还可以作为 key...

    aoho求索
  • 智能硬件sdk测试初探

    近期公司推出了某款智能录音笔,需要对录音笔笔端一些应用的sdk进行测试。因为之前对关于sdk测试的了解并不是很多,所以在本次测试中边测试、边了解、边学习,总结...

    用户5521279
  • R海拾遗-shiny4

    在工作目录中创建一个名为stockVis的新文件夹 下载以下文件放在stockVis中 app.R:https://shiny.rstudio.com/tuto...

    用户7760819

扫码关注云+社区

领取腾讯云代金券