翻译:English
Sketch 的日志由 Logger 组件提供服务,Tag 统一为 Sketch
和大多数日志框架一样,Logger 也通过 Logger.Level 控制输出日志的级别,默认为 Info
你可以在任何时候修改 level,如下:
// 在初始哈 Sketch 时
Sketch.Builder(context).apply {
logger(level = Logger.Level.Debug)
}.build()
// 在其它任何时候
context.sketch.logger.level = Logger.Level.Debug
Tip
过多的日志会影响 UI 流畅度,正式发布版本请将 level 设置为 Info 及以上级别
Logger 通过 Logger.Pipeline 接口输出日志,在 Android 平台上 Logger.Pipeline 的实现是 AndroidLogPipeline,非 Android 平台上是 PrintLogPipeline
你可以实现 Logger.Pipeline 接口自定义新的输出,然后在初始化 Sketch 时使用它,如下:
class MyPipeline : Logger.Pipeline {
override fun log(level: Logger.Level, tag: String, msg: String, tr: Throwable?) {
if (tr != null) {
val trString = tr.stackTraceToString()
println("$level. $tag. $msg. \n$trString")
} else {
println("$level. $tag. $msg")
}
}
override fun flush() {
}
override fun toString(): String = "MyPipeline"
}
Sketch.Builder(context).apply {
logger(pipeline = MyPipeline())
}.build()