http://blog.csdn.net/qidizi/article/details/47291803

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

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

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

不输出;

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

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

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

简单的实现如下:

  1. package com.qidizi.softkeyboard;
  2. import android.util.Log;
  3. class Debug {
  4. // 使用Log来显示调试信息,因为log在实现上每个message有4k字符长度限制
  5. // 所以这里使用自己分节的方式来输出足够长度的message
  6. public static void show(String str) {
  7. str = str.trim();
  8. int index = 0;
  9. int maxLength = 4000;
  10. String sub;
  11. while (index < str.length()) {
  12. // java的字符不允许指定超过总的长度end
  13. if (str.length() <= index + maxLength) {
  14. sub = str.substring(index);
  15. } else {
  16. sub = str.substring(index, index +maxLength);
  17. }
  18. index += maxLength;
  19. Log.i("qidizi_debug", sub.trim());
  20. }
  21. }
  22. }

最新文章

  1. *POJ1830 高斯消元
  2. iOS开发ARC内存管理技术要点
  3. win7+vs2010+opencv2.4.6配置
  4. C#拖放实现餐饮系统转台操作
  5. nodejs 更新最新版本
  6. Storm实时计算框架的编程模式
  7. 项目中Service层的写法
  8. 自定义使用AVCaptureSession 拍照,摄像,载图
  9. 关于MySQL Connector/C++那点事儿
  10. [Raobin] Ext.net在页面中以窗体的形式打开另外的页面
  11. Sublime Text3 配置markdown插件
  12. 常见 wifi热点的linux 驱动
  13. OpenCV 之 网络摄像头
  14. Linux - RAID和LVM
  15. 网路知识总结(session&amp;&amp;Cookie&amp;&amp;三次握手&amp;&amp;请求头)
  16. 实现Repeater控件的记录单选
  17. 相对定位和绝对定位 left和margin-left
  18. python 回溯法 子集树模板 系列 —— 2、迷宫问题
  19. python3入门之print,import,input介绍
  20. iOS小知识点

热门文章

  1. SolidEdge 如何由装配图快速进行标注和零件序号编写 制作BOM表
  2. 多重继承下的virtual functions
  3. Linux input子系统实例分析(一)
  4. 智能停车O2O 独角兽初现:“ETCP停车”获5000万美金A轮融资
  5. HDU 6061 RXD and functions NTT
  6. SSM整理笔记2——jar包整理
  7. jQuery 工具函数
  8. poj 3017 Cut the Sequence(单调队列优化DP)
  9. SpringMVC 学习笔记(四) 处理模型数据
  10. redis04-----Hash 哈希数据类型相关命令