美文网首页Android
Android Log日志封装

Android Log日志封装

作者: 斌林诚上 | 来源:发表于2018-09-23 18:00 被阅读53次

    一、简介

    为什么要对日志进行封装?

    先对比一下效果: clipboard.png 打印结果: clipboard.png 封装前:快捷键输入loge便可打印出Log.e(TAG, "onCreate: ", );需要输入参数TAG和参数msg。 且我们可以在Logcat页面查看日志信息。

    缺点:

    (1)输入的参数较多且重复

    (2)当打印的日志信息过多时,不方便查找我们所需的信息

    (3)无法快速指定是哪一行打印出来的信息

    (4)应用发布到市场上时,需要手动一个个删除打印的日志

    封装后:只需输入你想打印的msg,使用方便。且可以在Logcat页点击类名即可跳转到相应的位置。

    二、Log具体封装

    import android.util.Log;
    
    /**
     *
     * 日志封装
     */
    
    public class LogUtils {
        static String className;//类名
        static String methodName;//方法名
        static int lineNumber;//行数
    
        /**
         * 判断是否可以调试
         * @return
         */
        public static boolean isDebuggable() {
            return BuildConfig.DEBUG;
        }
    
        private static String createLog(String log ) {
            StringBuffer buffer = new StringBuffer();
            buffer.append("================");
            buffer.append(methodName);
            buffer.append("(").append(className).append(":").append(lineNumber).append(")================:");
            buffer.append(log);
            return buffer.toString();
        }
    
        /**
         * 获取文件名、方法名、所在行数
         * @param sElements
         */
        private static void getMethodNames(StackTraceElement[] sElements){
            className = sElements[1].getFileName();
            methodName = sElements[1].getMethodName();
            lineNumber = sElements[1].getLineNumber();
        }
    
        public static void e(String message){
            if (!isDebuggable())
                return;
            getMethodNames(new Throwable().getStackTrace());
            Log.e(className, createLog(message));
        }
    
        public static void i(String message){
            if (!isDebuggable())
                return;
            getMethodNames(new Throwable().getStackTrace());
            Log.i(className, createLog(message));
        }
    
        public static void d(String message){
            if (!isDebuggable())
                return;
            getMethodNames(new Throwable().getStackTrace());
            Log.d(className, createLog(message));
        }
    
        public static void v(String message){
            if (!isDebuggable())
                return;
            getMethodNames(new Throwable().getStackTrace());
            Log.v(className, createLog(message));
        }
    
        public static void w(String message){
            if (!isDebuggable())
                return;
            getMethodNames(new Throwable().getStackTrace());
            Log.w(className, createLog(message));
        }
    }
    

    三、关闭调试

    当我们要将应用发布到市场时,需要把日志清除掉(关闭调试)。

    (1)第一种方式:打开project Stucture clipboard.png
    (2)第二种方式:打开build.gradle clipboard.png 就不需要像以前一样一行行删除。当要用的时候再打开即可

    四、源码地址

    https://github.com/DayorNight/BLCS

    五、内容推荐

    CSDN地址:https://blog.csdn.net/cs_lwb/article/details/82823536
    上一篇《Android 友盟多渠道打包》
    参考文档:https://blog.csdn.net/lmj623565791/article/details/52506545

    相关文章

      网友评论

        本文标题:Android Log日志封装

        本文链接:https://www.haomeiwen.com/subject/hurqoftx.html