-
Notifications
You must be signed in to change notification settings - Fork 39
Home
Tony Shen edited this page Jan 15, 2020
·
16 revisions
它不仅能够打印出漂亮的日志格式,还支持高度定制日志格式。
它可以在任何使用 Java、Kotlin 开发的 Android 项目中使用。即使在您的项目中只使用 Java,也无需额外添加 Kotlin 的配置。
- 日志框架高度可扩展,提供丰富的接口
- 支持自定义 Tag,便于过滤
- 支持多种日志级别
- 支持显示/关闭当前线程信息
- 支持自定义 Header,可以用于标识手机、App 等版本信息
- 提供基于 DSL 的方式配置 L
- 基于责任链模式来打造对象的打印,将对象打印成json风格,方便阅读。默认支持JSON字符串、Collection、Map、Bundle、Intent、Reference、Throwable、Uri等类型的打印,分别做了特别的格式化处理。
- 使用 json() 方法打印字符串时,支持超长日志的打印,解决了 Logcat 4K 字符截断的问题。
- 支持自定义对象的解析处理,将其打印成自己想要的风格。
- 支持自定义日志格式存储到文件,底层基于 Kotlin Coroutines
- 支持使用特定的 Printer 进行打印日志
- 提供日志的打包功能
- 提供单独的基于 OkHttp 的日志拦截器,能够打印 Request、Response 信息,便于网络接口的调试。
下图是 core、file 模块的 uml 类图
-
L:负责初始化日志框架、日志的配置、打印日志的方法、使用日志级别、添加 Printer 等。
-
L+Extension:是 L 的扩展函数。
-
LoggerPrinter:存放日志打印需要的一些常量。
-
Parser:是一个接口,用于将特定的对象进行格式化。
-
Printer:是一个接口,用于打印日志,支持日志输出到 Console、File 等。
-
Formatter:是一个接口,用于格式化日志便于 Printer 进行打印。每一个 Printer 包含一个独立的 Formatter。
-
BaseHandler:是一个抽象类,用于封装责任链中每个处理者具体的处理方式。
换言之,Parser 用于将对象解析成字符串。Printer 用于打印、输出日志。Formatter 用于格式化日志,便于 Printer 使用。 而各个 Handler 继承了 BaseHandler 并实现了 Parser 接口。Handler 的职责是格式化某一种类型的对象,以便于利用 L 的 Printer 进行打印。