跳转至

使用

日志级别

Version 0.5.2

LogUtil 目前支持以下级别。

级别 属性
VERBOSE LogLevel.VERBOSE
DEBUG LogLevel.DEBUG
INFO LogLevel.INFO
WARN LogLevel.WARN
ERROR LogLevel.ERROR

例如,你可以调用 i() 方法来打印 INFO 级别的日志。

日志工厂

日志开关

Version 0.5.2

LogSwitch 提供了 open 参数

val mLogFactory = getLogFactory {
    install(LogSwitch) {
        open = true
    }
    .... 
}

日志打印的条件

只有应用处于调试模式且开启了日志系统才会打印日志。

日志格式化

Version 0.5.3

我们以下面的一段话为示例日志内容:

安卓(Android)是一种基于Linux内核(不包含GNU组件)的自由及开放源代码的移动操作系统。主要应用于移动设备,如智能手机和平板电脑,由美国Google公司和开放手机联盟领导及开发。

21:28:41.093 LogActivity D  ╔═══════════════════════════════════════════════════════════════════════════════════════════════
21:28:41.093 LogActivity D   Thread: main
21:28:41.093 LogActivity D  ╟───────────────────────────────────────────────────────────────────────────────────────────────
21:28:41.093 LogActivity D   com.ave.vastgui.app.activity.LogActivity$onCreate$2.invoke(LogActivity.kt:44)
21:28:41.093 LogActivity D  ╟───────────────────────────────────────────────────────────────────────────────────────────────
21:28:41.093 LogActivity D   安卓(Android)是一种基于Linux内核(不包含GNU组件)的自由及开放源代码的移动操作系统。主要应用于移动设备,如智能手机和平板电脑,由美国Google公司和开放手机联盟领导及开发。
21:28:41.093 LogActivity D  ╚═══════════════════════════════════════════════════════════════════════════════════════════════

限制每行字符数

Version 0.5.3

maxSingleLogLength 用于设置单行日志的最大打印长度,每个字符按照 UTF-8 最大 4Bytes 计算。因此实际打印结果可能会略微有差异,这是正常的。

val mLogFactory = getLogFactory {
    install(LogPrinter) {
        maxSingleLogLength = 30
    }
    ... 
}
21:32:15.131 LogActivity D  ╔════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════
21:32:15.131 LogActivity D   Thread: main
21:32:15.131 LogActivity D  ╟────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
21:32:15.131 LogActivity D   com.ave.vastgui.app.activity.LogActivity$onCreate$2.invoke(LogActivity.kt:44)
21:32:15.131 LogActivity D  ╟────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
21:32:15.132 LogActivity D   安卓(Android)是一种基于Linux内核(不包含GNU组件)的自由及开放源代码的移动操作系统
21:32:15.132 LogActivity D   。主要应用于移动设备,如智能手机和平板电脑,由美国Google公司和开放手机联盟领导及
21:32:15.132 LogActivity D   开发。
21:32:15.132 LogActivity D  ╚════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════

限制最多打印次数

Version 0.5.3

maxPrintTimes 用于设置日志打印的重复次数,例如根据设置超长的日志被分割为 10 行,如果 maxPrintTimes 被设置为 5 ,则只会打印前五行内容。

val mLogFactory = getLogFactory {
    install(LogPrinter) {
        maxSingleLogLength = 100
        maxPrintTimes = 5
    }
    ...
}

行数限制说明

Json 对象不收该项限制。

21:41:04.297 LogActivity D  ╔════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════
21:41:04.298 LogActivity D   Thread: main
21:41:04.298 LogActivity D  ╟────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
21:41:04.298 LogActivity D   com.ave.vastgui.app.activity.LogActivity$onCreate$2.invoke(LogActivity.kt:44)
21:41:04.298 LogActivity D  ╟────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
21:41:04.298 LogActivity D   安卓(Android)是一种基于Linux内核(不包含GNU组件)的自由及开放源代码的移动操作系统
21:41:04.298 LogActivity D  ╚════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════

日志 Json 转换器

Version 0.5.3

目前提供了以下三种 Json 序列化对象

类名 属性
FastJsonConverter 基于 FastJson 打造
GsonConverter 基于 Gson 打造
JacksonConverter 基于 Jackson 打造
val mLogFactory = getLogFactory {
    install(LogJson){
        converter = GsonConverter(true)
    }
    ... 
}

日志存储

Version 0.5.3

LogStorage 插件允许你将对应的日志存储进文件当中,配置如下:

val mLogFactory = getLogFactory {
    install(LogStorage) {
        fileMaxSize = 1024L * 1000
        storageFormat = { time, level, content ->
            "$level || $time || $content "
        }
        ...
    }
    ... 
}

查看存储文件示例