android的logcat的message有字符长度的限制,超过将直接截断
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输出即可;
简单的实现如下:
- 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, index +maxLength);
- }
- index += maxLength;
- Log.i("qidizi_debug", sub.trim());
- }
- }
- }
android的logcat的message有字符长度的限制,超过将直接截断的更多相关文章
- android的logcat详细用法
Android日志系统提供了记录和查看系统调试信息的功能.日志都是从各种软件和一些系统的缓冲区中记录下来的,缓冲区可以通过 logcat 命 令来查看和使用. 使用logcat命令 你可以用 logc ...
- android的logcat详细用法!
from://http://www.miui.com/article-272-1.html [技术交流]android的logcat详细用法! logcat是Android中一个命令行工具,可以用于得 ...
- 动态SQL字符长度超过8000
动态SQL字符长度超过8000,我记得SQL SERVER 2008中用SP_EXECUTESQL打破了这个限制. 平常用动态SQL,可能都会用EXEC(),但是有限制,就是8000字符串长度.自从S ...
- 解决MVC中JSON字符长度超出限制的异常
解决MVC中JSON字符长度超出限制的异常 解决方法如下: <configuration> <system.web.extensions> <scripting> ...
- 【代码笔记】iOS-判断中英文混合的字符长度的两种方法
一,代码. - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. ...
- 计算html标签textarea字符长度
今天学习jQuery,做练习计算html标签textarea字符长度,先添加一个视图操作(Action): 创建一个视图,并按下面顺序标记1,2,3进行写html或javascript脚本: 其中标记 ...
- JavaScript判断字符串的字符长度(中文占两个字符)
判断方法 //判断字符串中的字符 中文算两个字符 function chkstrlen(str) { ; ; i < str.length; i++) { ) //如果是汉字,则字符串长度加2 ...
- 每日学习心得:CustomValidator验证控件验证用户输入的字符长度、Linq 多字段分组统计、ASP.NET后台弹出confirm对话框,然后点击确定,执行一段代码
2013-9-15 1. CustomValidator验证控件验证用户输入的字符长度 在实际的开发中通常会遇到验证用户输入的字符长度的问题,通常的情况下,可以写一个js的脚本或者函数,在ASP ...
- textarea中限制输入字符长度
要在textarea中限制输入字符的长度,比如在twitter中要限制字符为140个,可实现的方法有: 1. <textarea name="A" cols="45 ...
随机推荐
- Effective C++ 条款二 用编译器替换预编译器
/************************************************************************/ /* C++条款二:用编译器替换预编译器 */ / ...
- ThinkPHP中$map用法
ThinkPHP内置了非常灵活的查询方法,可以快速的进行数据查询操作,查询条件可以用于CURD等任何操作,作为where方法的参数传入即可,下面来一一讲解查询语言的内涵. 查询方式ThinkPHP可以 ...
- 使用MegaCli查看raid信息
LSI SAS based MegaRAID driver http://www.lsi.com/downloads/Public/Nytro/downloads/Nytro%20XD/MegaCli ...
- TinyXML:属性
TiXmlAttribute: 代表XML中的属性,TiXmlAttribute中定义了一系列对属性的操作 TiXmlAttribute的友元类: friend class TiXmlAttribut ...
- Appium,IOS 模拟器,Java工程搭建
首先进入sample code Test App 有TestApp.xcodeproj文件的工程目录下 下编译出TestApp.app文件 1.新建 java 工程 2.import需要的包 新建cl ...
- 网页Html代码优化及分析
- kafka 和 zookeeper 常用命令记录
启动zookeeper zkServer.sh start 启动kafka服务器 kafka-server-start.sh /software/kafka_2.10-0.10.2.1/config/ ...
- 在C语言中使用libb64进行Base64编解码
libb64下载地址http://sourceforge.net/projects/libb64 以下为Demo libb64_demo.c #include <stdio.h> #inc ...
- 用jetty起maven工程debug报source not found
之前基本都是tomcat启maven本工程 惯性的处理方式是 直接点击lookup source 直接先删除default工程 然后选择导入java project 找到源码所在的工程 但是一般情况下 ...
- js中return的作用
1.终止函数的继续运行. 当遇到if…… else是.若出现return,就会出现终止运行,不会继续做出判断 <html> <head> <title>return ...