首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Android 如何设置logcat消息的最大长度?

Android 如何设置logcat消息的最大长度?
EN

Stack Overflow用户
提问于 2018-03-30 08:10:07
回答 2查看 0关注 0票数 0

默认情况下,logcat似乎会截断它认为“太长”的日志消息。这发生在Eclipse内部以及在命令行上使用时运行logcat adb -d logcat,并截断一些重要的调试消息。

有没有办法增加logcat支持的最大字符串长度,让它停止截断调试信息?

EN

回答 2

Stack Overflow用户

发布于 2018-03-30 16:17:18

logcat中有一个固定大小的缓冲区用于二进制日志(/dev/log/events),这个限制是1024字节。对于非二进制日志还有一个限制:

代码语言:javascript
复制
#define LOGGER_ENTRY_MAX_LEN        (4*1024)
#define LOGGER_ENTRY_MAX_PAYLOAD (LOGGER_ENTRY_MAX_LEN - sizeof(struct logger_entry))

所以二进制和非二进制日志的真实消息大小是〜4076字节。内核记录器接口强加此LOGGER_ENTRY_MAX_PAYLOAD限制。

票数 0
EN

Stack Overflow用户

发布于 2018-03-30 17:39:08

我很失望地看到答案是“你无法真正扩展它”。我最初的想法是分解它,以便我可以查看整个事情,所以在这里我与你分享我如何做到这一点:

代码语言:javascript
复制
if (sb.length() > 4000) {
    Log.v(TAG, "sb.length = " + sb.length());
    int chunkCount = sb.length() / 4000;     // integer division
    for (int i = 0; i <= chunkCount; i++) {
        int max = 4000 * (i + 1);
        if (max >= sb.length()) {
            Log.v(TAG, "chunk " + i + " of " + chunkCount + ":" + sb.substring(4000 * i));
        } else {
            Log.v(TAG, "chunk " + i + " of " + chunkCount + ":" + sb.substring(4000 * i, max));
        }
    }
} else {
    Log.v(TAG, sb.toString());
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100003750

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档