博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Klog - 利用Kotlin的类扩展,为你的log输出带来无限遐想
阅读量:6371 次
发布时间:2019-06-23

本文共 1591 字,大约阅读时间需要 5 分钟。

本着踩坑Kotlin的态度, 写了一个Kotlin的log库.使用起来很方便. 大家学习Kotlin的可以看一下.

Github:

无论什么语言, 程序员都需要输出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
("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:


本文作者:Anderson/Jerey_Jobs

博客地址 :

简书地址 :
github地址 :

转载地址:http://kjyqa.baihongyu.com/

你可能感兴趣的文章
使用Annotation设计持久层
查看>>
深入实践Spring Boot2.4.1 Neo4j依赖配置
查看>>
Zen Cart 如何添加地址栏上的小图标
查看>>
SecureCrt 连接Redhat linux
查看>>
[NHibernate]持久化类(Persistent Classes)
查看>>
如何在Hive中使用Json格式数据
查看>>
linux如何恢复被删除的热文件
查看>>
Eclipse(MyEclipse) 自动补全
查看>>
Struts2中dispatcher与redirect的区别
查看>>
zabbix agentd configure
查看>>
地图点聚合优化方案
查看>>
Google Chrome 快捷方式
查看>>
备考PMP心得体会
查看>>
vue proxy匹配规则
查看>>
线上应用故障排查之一:高CPU占用
查看>>
Extend Volume 操作 - 每天5分钟玩转 OpenStack(56)
查看>>
IronPython教程
查看>>
squid via检测转发循环
查看>>
计算分页
查看>>
iptables 做nat路由器脚本
查看>>