问题描述:
最近,调试一个程序,差点儿被一个简单的Logcat日志蒙蔽了双眼。
过程是这样的:在代码中,用Log.i(TAG, msg)来输出msg的信息。输出的结果却只输出了前面一部分,后面的字符没有输出来。
代码如下:
Log.i(TAG,"[log output]=========len:" + msg.length());
Log.i(TAG,"[log output]=========data:");
Log.i(TAG,msg);
输出结果如下:
[log output]=========len:5400
[log output]=========data:
第三行:1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz
......
1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvw//第三行输出了4065个字符
原来是因为对msg的读写长度有限制,对于这个限制,源码是这样定义的:
在system/core/include/cutils/logger.h头文件中,有:
#define LOGGER_ENTRY_MAX_PAYLOAD 4076 /* * The maximum size of a log entry which can be read from the * kernel logger driver. An attempt to read less than this amount * may result in read() returning EINVAL. */

最低0.47元/天 解锁文章
4061

被折叠的 条评论
为什么被折叠?



