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. }

android的logcat的message有字符长度的限制,超过将直接截断的更多相关文章

  1. android的logcat详细用法

    Android日志系统提供了记录和查看系统调试信息的功能.日志都是从各种软件和一些系统的缓冲区中记录下来的,缓冲区可以通过 logcat 命 令来查看和使用. 使用logcat命令 你可以用 logc ...

  2. android的logcat详细用法!

    from://http://www.miui.com/article-272-1.html [技术交流]android的logcat详细用法! logcat是Android中一个命令行工具,可以用于得 ...

  3. 动态SQL字符长度超过8000

    动态SQL字符长度超过8000,我记得SQL SERVER 2008中用SP_EXECUTESQL打破了这个限制. 平常用动态SQL,可能都会用EXEC(),但是有限制,就是8000字符串长度.自从S ...

  4. 解决MVC中JSON字符长度超出限制的异常

    解决MVC中JSON字符长度超出限制的异常 解决方法如下: <configuration> <system.web.extensions> <scripting> ...

  5. 【代码笔记】iOS-判断中英文混合的字符长度的两种方法

    一,代码. - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. ...

  6. 计算html标签textarea字符长度

    今天学习jQuery,做练习计算html标签textarea字符长度,先添加一个视图操作(Action): 创建一个视图,并按下面顺序标记1,2,3进行写html或javascript脚本: 其中标记 ...

  7. JavaScript判断字符串的字符长度(中文占两个字符)

    判断方法 //判断字符串中的字符 中文算两个字符 function chkstrlen(str) { ; ; i < str.length; i++) { ) //如果是汉字,则字符串长度加2 ...

  8. 每日学习心得:CustomValidator验证控件验证用户输入的字符长度、Linq 多字段分组统计、ASP.NET后台弹出confirm对话框,然后点击确定,执行一段代码

    2013-9-15 1.    CustomValidator验证控件验证用户输入的字符长度 在实际的开发中通常会遇到验证用户输入的字符长度的问题,通常的情况下,可以写一个js的脚本或者函数,在ASP ...

  9. textarea中限制输入字符长度

    要在textarea中限制输入字符的长度,比如在twitter中要限制字符为140个,可实现的方法有: 1. <textarea name="A" cols="45 ...

随机推荐

  1. c程序设计语言第一章5

    练习1.20请编写程序d e t a b

  2. HTML初体验

    ios讨论群1群:135718460 HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,它规定了自己的语法规则,用来表示比"文本"更丰富 ...

  3. Ubuntuserver版安装

          近期因为工作的须要.又一次部署server.安装了Ubuntuserver版本号,依据当时遇到的一些问题,整理了下,为方便以后的使用做个记录.       因为直接安装server端.无法 ...

  4. Linux安装Axis C构建WebService服务

    在安装Axis C++之前有两个组件是必须安装的,分别是Apache HTTP Server以及用于处理XML的程序Xerces:为了编译Axis以及Apache HTTPD,你的Linux机器还应该 ...

  5. Linux环境下如何查找哪个线程使用CPU最长

    top -H -p pid 查看端口是否被占用: netstat -apn|grep 80

  6. wxpython中控件对键盘输入无响应的可能原因

    问题描述: 开发环境:Win7 32bit + Python2.7.6 + WxPython 3.0.1-b20140707 开发某初级CAD软件中,需要实现点击TreeCtrl控件的相应选择,实现G ...

  7. F08标准中Open命令的newunit选项

    从gfortran 4.5开始Open命令开始支持newunit选项,示例如下: integer :: u open(newunit=u, file="log.txt", posi ...

  8. Ajax的简单实现

    Ajax的实现需要服务器端和客户端配合来实现 下面看服务器端的代码,也就是用php编写的一个后台脚本文件 <?php //设置页面内容,编码格式是utf8 header("Conten ...

  9. V-Play 文档翻译 Page

    V-Play 文档翻译 Page 翻译:qyvlik 应用的一个页面. VPlayApps 1.0 Inherits: MouseArea Inherited By: ListPage 属性 Item ...

  10. [rabbitmq-discuss] Exactly Once Delivery

    [rabbitmq-discuss] Exactly Once Delivery http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/2010-A ...