关于Log封装

简单的记述一下android log日志打印的优化。

首先,我们要知道系统自带的log打印是有长度限制的,而这个限制我记得大约为4 1024个字节,所以在数据量过多的时候,打印是不完全的。*

其次,为什么要封装?

程序中,过多的log日志打印是会影响性能的,多到什么情况呢 ? 看我下面这个demo测试一下!

image
image

这里做了个简单的测试,一个小循环10000次,打印或不打印耗时比较,相差约耗时84毫秒,或许有的人觉得无所谓,这么点时间而已,但不可否认的是log的打印确实会耗时。那么可以说此处也是一个处理优化的地方。

然后,继续说下一个问题。保密性

不清楚大家知道没,假设正式版发布后,如果log的不注释掉,关掉。别人是能读取到你的打印日志的,所以为了程序的安全,最好是在发布前,将打印的全关掉。

那么一个个去注释这工作量似乎不小吧,而且谁还记得哪里有没有遗漏,所以就有了我说的封装管理。

最后,就简单的上一下代码,其实很简单的一个工具类而已,即保证了日志输出的完整,又完善了日志的打印管理。

public class LogUtile {

private static boolean showFlag =true;

    private static StringTAG ="LogUtile_data";

    private static int logLenth =2000;

    public static void Log_d(String str) {

if (showFlag) {

if (str.length() >logLenth) {

Log_d_long(str, logLenth);

            }else

                Log.d(TAG, str);

        }

}

private static void Log_d_long(String str, int cutLength) {

String substring = str.substring(0, cutLength);

        String endStr = str.substring(cutLength, str.length());

        if (endStr.length() > cutLength) {

Log.d(TAG, substring);

            Log_d_long(endStr, cutLength);

        }else

            Log.d(TAG, endStr);

    }

public static void Log_d(String str, Exception exception) {

if (showFlag) {

if (str.length() >logLenth) {

Log_d_long(str, logLenth);

            }else

                Log.d(TAG, str, exception);

        }

}

}

你可能感兴趣的:(关于Log封装)