码迷,mamicode.com
首页 > 移动开发 > 详细

android的logcat的message有字符长度的限制,超过将直接截断

时间:2015-08-05 10:41:17      阅读:482      评论:0      收藏:0      [点我收藏+]

标签:android   logcat   log   message   长度   

今天想在logcat中输出足够多的调试信息时,发现从logcat中返回的信息中明显少了后面一节;

觉得有点奇怪,以为是代码上问题,找了一下,发现不是;

于是guge一下.原来logcat在实现上对于message的内存分配大概是4k左右.所以超过的内容都直接被丢弃;

不输出;

同时发现logcat对于"\n"换行符会自动当成是自动分隔成多条log输出的标志,但是,你Log.d(null,"有多个\n的超过4k长度的字符");

这样的信息,虽然会有多少个\n就产生多少条log,但是你传递给这个message的最多接受大概是4k,后面不要了;然后再按照\n的原则来切割的;


所以,考虑了一下,就自己写一个debug类来自己切分超过4k的message来使用多个log.d输出即可;

简单的实现如下:

package com.qidizi.softkeyboard;


import android.util.Log;


class Debug {
	// 使用Log来显示调试信息,因为log在实现上每个message有4k字符长度限制
	// 所以这里使用自己分节的方式来输出足够长度的message
	public static void show(String str) {
		str = str.trim();
		int index = 0;
		int maxLength = 4000;
		String sub;
		while (index < str.length()) {
			// java的字符不允许指定超过总的长度end
			if (str.length() <= index + maxLength) {
				sub = str.substring(index);
			} else {
				sub = str.substring(index, maxLength);
			}
			
			index += maxLength;
			Log.i("qidizi_debug", sub.trim());
		}
	}
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

android的logcat的message有字符长度的限制,超过将直接截断

标签:android   logcat   log   message   长度   

原文地址:http://blog.csdn.net/qidizi/article/details/47291803

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!