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

当在Android开发中遇到logcat输出信息被限制在4k字符内的问题,可以通过自定义debug类来分段输出长消息。博客作者分享了一个简单的实现,通过检查字符串长度并按4k长度分段,确保每个子字符串不超过限制,并使用Log.i方法逐段输出。这样可以避免logcat自动截断长日志。
摘要由CSDN通过智能技术生成

今天想在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());

}

}

}

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值