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

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 用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风格,具体可以参照下图:


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

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
3月前
|
Android开发 Kotlin
Android经典面试题之Kotlin的==和===有什么区别?
本文介绍了 Kotlin 中 `==` 和 `===` 操作符的区别:`==` 用于比较值是否相等,而 `===` 用于检查对象身份。对于基本类型,两者行为相似;对于对象引用,`==` 比较值相等性,`===` 检查引用是否指向同一实例。此外,还列举了其他常用比较操作符及其应用场景。
196 93
|
1月前
|
前端开发 数据处理 Android开发
Flutter前端开发中的调试技巧与工具使用方法,涵盖调试的重要性、基本技巧如打印日志与断点调试、常用调试工具如Android Studio/VS Code调试器和Flutter Inspector的介绍
本文深入探讨了Flutter前端开发中的调试技巧与工具使用方法,涵盖调试的重要性、基本技巧如打印日志与断点调试、常用调试工具如Android Studio/VS Code调试器和Flutter Inspector的介绍,以及具体操作步骤、常见问题解决、高级调试技巧、团队协作中的调试应用和未来发展趋势,旨在帮助开发者提高调试效率,提升应用质量。
49 8
|
2月前
|
存储 Java Android开发
Android|记一个导致 logback 无法输出日志的问题
在给一个 Android 项目添加 logback 日志框架时,遇到一个导致无法正常输出日志的问题,这里记录一下。
40 2
|
2月前
|
Java 程序员 API
Android|集成 slf4j + logback 作为日志框架
做个简单改造,统一 Android APP 和 Java 后端项目打印日志的体验。
137 1
|
2月前
|
存储 前端开发 测试技术
Android kotlin MVVM 架构简单示例入门
Android kotlin MVVM 架构简单示例入门
38 1
|
2月前
|
调度 Android开发 开发者
构建高效Android应用:探究Kotlin多线程优化策略
【10月更文挑战第11天】本文探讨了如何在Kotlin中实现高效的多线程方案,特别是在Android应用开发中。通过介绍Kotlin协程的基础知识、异步数据加载的实际案例,以及合理使用不同调度器的方法,帮助开发者提升应用性能和用户体验。
64 4
|
2月前
|
JSON 调度 数据库
Android面试之5个Kotlin深度面试题:协程、密封类和高阶函数
本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点。文章详细解析了Kotlin中的协程、扩展函数、高阶函数、密封类及`inline`和`reified`关键字在Android开发中的应用,帮助读者更好地理解和使用这些特性。
35 1
|
2月前
|
Android开发 Kotlin
Android面试题之Kotlin中如何实现串行和并行任务?
本文介绍了 Kotlin 中 `async` 和 `await` 在并发编程中的应用,包括并行与串行任务的处理方法。并通过示例代码展示了如何启动并收集异步任务的结果。
34 0
|
2月前
|
Java 调度 Android开发
Android面试题之Kotlin中async 和 await实现并发的原理和面试总结
本文首发于公众号“AntDream”,详细解析了Kotlin协程中`async`与`await`的原理及其非阻塞特性,并提供了相关面试题及答案。协程作为轻量级线程,由Kotlin运行时库管理,`async`用于启动协程并返回`Deferred`对象,`await`则用于等待该对象完成并获取结果。文章还探讨了协程与传统线程的区别,并展示了如何取消协程任务及正确释放资源。
41 0
|
1月前
|
XML 安全 Java
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
299 30
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板