默认情况下,logcat似乎会截断它认为“太长”的日志消息。这发生在Eclipse内部以及在命令行上使用时运行logcat adb -d logcat
,并截断一些重要的调试消息。
有没有办法增加logcat支持的最大字符串长度,让它停止截断调试信息?
发布于 2018-03-30 16:17:18
logcat中有一个固定大小的缓冲区用于二进制日志(/dev/log/events
),这个限制是1024字节。对于非二进制日志还有一个限制:
#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
限制。
发布于 2018-03-30 17:39:08
我很失望地看到答案是“你无法真正扩展它”。我最初的想法是分解它,以便我可以查看整个事情,所以在这里我与你分享我如何做到这一点:
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());
}
https://stackoverflow.com/questions/-100003750
复制相似问题