Androd技巧篇 >> 解决AndroidStudio Logcat 打印字数限制问题

811 阅读1分钟

环境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")