Anroid Log输出日志不完整和“选择性输出(部分语句可以输出,部分语句不输出)”
1.Log日志输出显示不完整
AS的logcat输出日志长度是有限制的,超过了长度,数据显示就不是完整的信息。当我们使用插件把json数据转为实体类时,就很不方便。为了能看到完整的日志信息,就需要把json数据递归截取前面部分依次输出。
private static boolean debug = true;
private static int showLength = 3999;
/**
* 分段打印出较长log文本
*
* @param logContent 打印文本
* @param tag 打印log的标记
*/
public static void info(String tag, String logContent) {
if (!debug) {
return;
}
if (logContent.length() > showLength) {
String show = logContent.substring(0, showLength);
i(tag, show);
/*剩余的字符串如果大于规定显示的长度,截取剩余字符串进行递归,否则打印结果*/
if ((logContent.length() - showLength) > showLength) {
String partLog = logContent.substring(showLength, logContent.length());
info(tag, partLog);
} else {
String printLog = logContent.substring(showLength, logContent.length());
i(tag, printLog);
}
} else {
e(tag, logContent);
}
}
2.选择性输出
平时习惯用真机连接AS调试App,使用系统自带的Log输出日志和数据。今天在打印日志时,居然没有找到要输出的数据,开始以为Log没有输出是因为没有执行语句(自己对系统的Log进行简单封装),F8调试一步步执行时,明显已经执行并打印了日志信息,就是不显示。
解决办法:
手机厂商对输出日志级别进行了限制,需要修改日志输出级别。
进入拨号界面输入:*#*#2846579#*#*
然后重启手机。