百度的一些方法打印不出正确日志(String的length计算的是字符数量)。
理论:
Android单条log长度最大值为:4*1024字节,超过的话会被Log内核驱动截断.
干货:
public class LongLog {
//因为String的length是字符数量不是字节数量所以为了防止中文字符过多,
// 把4*1024的MAX字节打印长度改为2001字符数(假设有大约一半中文字符,基本够小了,当然改为1006才是完全保险的)
public static String TAG="-----LongLog-----";
public static void loge(String str){
int max_str_length=2001-TAG.length();
//大于4000时
while (str.length()>max_str_length){
Log.e(TAG, str.substring(0,max_str_length) );
str=str.substring(max_str_length);
}
//剩余部分
Log.e(TAG, str );
}