本文主要是介绍Android Log日志 - 打印不全问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
AndroidStudio在打印Log的时候目前支持4*1024长度,超出部分不能打印。当你在各种百度之后有对应的解决办法,但是每次都是部分代码,看着都忧伤。索性此次项目调试的数据也是比较多滴,目前就准备对Log开刀来写一个Log类,还是如以往的性格直接写完整的类,方便需要的人用。反正又不是什么高深的东西,为了给被方便同时也是给自己方便。
/*** Relin* 2019-07-10 10:40:32* 日志打印类* 该类主要适应日志打印不全问题,主要是因为Log最大长度4*1024,考虑到汉字问题* 此处我们采用的是2*1024长度打印,主要是分行打印数据,同时对每行进行[index]标识* 目前支持Log.i() Log.w() Log.e() Log.d()*/
public class Log {/*** 最大一次打印长度*/public final static int MAX_LENGTH = 2000;/*** 日志类型*/public enum Type {I, E, D, W}/*** 打印信息日志** @param tag 标志* @param msg 内容*/public static void i(String tag, String msg) {maxPrint(Type.I, tag, msg);}/*** 打印错误日志** @param tag 标志* @param msg 内容*/public static void e(String tag, String msg) {maxPrint(Type.E, tag, msg);}/*** 打印调试日志** @param tag 标志* @param msg 内容*/public static void d(String tag, String msg) {maxPrint(Type.D, tag, msg);}/*** 打印警告日志** @param tag 标志* @param msg 打印内容*/public static void w(String tag, String msg) {maxPrint(Type.W, tag, msg);}/*** 适应最大长度打印** @param type 日志类型* @param tag 标志* @param msg 信息*/private static void maxPrint(Type type, String tag, String msg) {if (msg.length() > MAX_LENGTH) {int length = MAX_LENGTH + 1;String remain = msg;int index = 0;while (length > MAX_LENGTH) {index++;typePrint(type, tag + "[" + index + "]", " \n" + remain.substring(0, MAX_LENGTH));remain = remain.substring(MAX_LENGTH);length = remain.length();}if (length <= MAX_LENGTH) {index++;typePrint(type, tag + "[" + index + "]", " \n" + remain);}} else {typePrint(type, tag, msg);}}/*** 打印各种类型** @param type 日志类型* @param tag 标志* @param msg 信息*/private static void typePrint(Type type, String tag, String msg) {switch (type) {case I:android.util.Log.i(tag, msg);break;case E:android.util.Log.e(tag, msg);break;case W:android.util.Log.w(tag, msg);break;case D:android.util.Log.d(tag, msg);break;}}}
这篇关于Android Log日志 - 打印不全问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!