Android 日志输出工具类

作者: markRao | 来源:发表于2019-04-28 15:19 被阅读18次
    /**
     * 日志输出工具类
     */
    public class L {
    
        private static final String TAG = "LOGFILE";
    
        private L() {
            // 设置不允许被实例化
            throw new UnsupportedOperationException("cannot be instantiated");
        }
    
        private static boolean isDebug;// 是否需要打印bug,可以在application的onCreate函数里面初始化
        
        public static void setIsDebug(boolean isDebug) {
            L.isDebug = isDebug;
        }
    
        // 下面四个是默认tag的函数
        public static void i(String msg) {
            i(TAG, msg);
        }
    
        public static void d(String msg) {
            d(TAG, msg);
        }
    
        public static void e(String msg) {
            e(TAG, msg);
        }
    
        public static void v(String msg) {
            v(TAG, msg);
        }
    
        // 下面是传入自定义tag的函数
        public static void i(String tag, String msg) {
            if (isDebug) {
                Log.i(tag, msg);
            }
    
        }
    
        public static void d(String tag, String msg) {
            if (isDebug) {
                Log.d(tag, msg);
            }
    
        }
    
        public static void e(String tag, String msg) {
            if (isDebug) {
                Log.e(tag, msg);
            }
        }
    
        public static void v(String tag, String msg) {
            if (isDebug) {
                Log.v(tag, msg);
            }
        }
    
    }
    

    工具类默认是屏蔽日志打印的,然后我们在 Application 的 onCreate 里根据当前是否为 deBug 去初始化 isDebug 的值

      private void initLog() {
            if (isApkInDebug()) {
                L.setIsDebug(true);
            }
        }
    
        /**
         * 判断当前应用是否是debug状态
          * @return
         */
        public static boolean isApkInDebug() {
            try {
                ApplicationInfo info = mContext.getApplicationInfo();
                return (info.flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0;
            } catch (Exception e) {
                return false;
            }
        }
    

    之前的日志输出工具类没有判断是否为 deBug,然后每次发包之前都手动的把 isDebug 设置为 false,毫无疑问,有几次都忘记了,然后出现 release 包依然打印日志信息的情况。

    相关文章

      网友评论

        本文标题:Android 日志输出工具类

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