环境logcat
AndroidStudio - Logcat
场景
在常规输出日志,在使用Log.i(), Log.d(), Log.e(), Log.w()等,输出比较长的字符串,达到Logcat设置字符长度的阈值,就会对字符串阶段,而无法查看完整的字符串数据内容。
Logcat在对于message的内存分配大概是4k左右,超过的内容会被截断,直接被丢弃。 尝试过其他As log的一些配置,都不太理想。要么是输出日志到本地文件。
提供一种日志打印工具
这种方式可以简单间接的查看全部数据
使用分节的方式来输出足够长度的message
/**
* 打印长日志的Log工具类
*/
object ILongLogUtils {
//规定每段显示的长度
private const val LOG_MAXLENGTH = 2000
private const val TAG_DEFAULT = "LOG_LONG"
fun debug(msg: String, TAG: String = TAG_DEFAULT) {
val strLength = msg.length
var start = 0
var end = LOG_MAXLENGTH
for (i in 0..99) {
//剩下的文本还是大于规定长度则继续重复截取并输出
if (strLength > end) {
Log.e(TAG + i, msg.substring(start, end))
start = end
end += LOG_MAXLENGTH
} else {
Log.e(TAG, msg.substring(start, strLength))
break
}
}
}
}
//调用
ILongLogUtils.debug("i am log. x 10000 length")