之前项目中返回json字符串超长,导致log输出一部分,后面部分没有,上网查了不少资料,结果给的方法都是:

public static void i(String tag, String msg) {        if (DEBUG_MODE) {            if (msg.length() > LENGTH) {                for (int i = 0; i < msg.length(); i += LENGTH) {                    if (i + LENGTH < msg.length()) {                        android.util.Log.i(tag, msg.substring(i, i + LENGTH));                    } else {                        android.util.Log.i(tag, msg.substring(i, msg.length()));                    }                }            } else {                android.util.Log.i(tag, msg);            }        }    }

其中LENGTH是自己设置的长度值,一般为4000(下面有原因为啥是这个值).

还很有理有据的解释,底层Logger有长度限制是4*1024,都不知道验证一下就发出了,结果这个方法的确可以打印很多log了,但是,但是!  log换行打印之后,

两行之间会丢失不少字符!

经过不懈努力,我终于找到了办法:

public static void i(String tag, String msg) {  //信息太长,分段打印        //因为String的length是字符数量不是字节数量所以为了防止中文字符过多,        //  把4*1024的MAX字节打印长度改为2001字符数        int max_str_length = 2001 - tag.length();        //大于4000时        while (msg.length() > max_str_length) {            Log.i(tag, msg.substring(0, max_str_length));            msg = msg.substring(max_str_length);        }        //剩余部分        Log.i(tag, msg);    }

完美解决.


更多相关文章

  1. android studio离线配置gradle
  2. Android(安卓)Span 的使用
  3. Android(安卓)获得Url、Uri字符串后面拼接的参数
  4. ListView 添加长度样式不固定的分割线
  5. Andrid中的plurals
  6. Android资源之String (一): 特殊字符
  7. http通信,Android(安卓)Gzip压缩解压
  8. InputFilter方法filter 解释
  9. ImageView 长按保存

随机推荐

  1. Android(一)-Android简介
  2. android:id设置的三种方式区别在哪?
  3. Android的发展历史
  4. 做Android的感想
  5. android 仿微信demo————微信通讯录界
  6. android:layout_gravity 和 android:grav
  7. Android:res之selector背景选择器
  8. android layout attribute
  9. android:layout_gravity和android:gravit
  10. android 圆角编写(懒得去找,写给自己看的)