zoukankan      html  css  js  c++  java
  • Android log 管理工具

    1、logger

         项目地址: https://github.com/orhanobut/logger

    2、KLog

        项目地址:https://github.com/ZhaoKaiQiang/KLog

         博客介绍: http://kaizige.vip/2016/06/13/klog/

    3、自定义日志 

         上面两个日志框架使用起来很简单,功能很强大,但是有时我们不需要那么强大的功能,或者为了尽可能精简代码,压缩apk包的大小。那就使用下面一个自定义的日志管理类,只有一个类,小而巧。

    package www.yiba.com.wifisdk.utils;
    
    import android.util.Log;
    
    /**
     * 日志工具类 使打印日志变得简单 自动识别调用日志函数的类名 方法名 与位置 不需要繁琐的TAG 可以方便的 设置debug模式 发布时候
     * 可以直接修改debug为false 就不会输出日志了
     */
    public class LogUtil {
    
        /**
         * true:打开log  false:关闭所有的日志
         */
        public static boolean OPEN_LOG = true;
    
        /**
         * true : 打开debug 日志  false:关闭debug日志
         */
        public static boolean DEBUG = true;
        /**
         * TAG 名称
         */
        private static String tag = "yiba_sdk";
        private String mClassName;
        private static LogUtil log;
        private static final String USER_NAME = "@tool@";
    
        private LogUtil(String name) {
            mClassName = name;
        }
    
        /**
         * Get The Current Function Name
         *
         * @return Name
         */
        private String getFunctionName() {
            StackTraceElement[] sts = Thread.currentThread().getStackTrace();
            if (sts == null) {
                return null;
            }
            for (StackTraceElement st : sts) {
                if (st.isNativeMethod()) {
                    continue;
                }
                if (st.getClassName().equals(Thread.class.getName())) {
                    continue;
                }
                if (st.getClassName().equals(this.getClass().getName())) {
                    continue;
                }
                return mClassName + "[ " + Thread.currentThread().getName() + ": "
                        + st.getFileName() + ":" + st.getLineNumber() + " "
                        + st.getMethodName() + " ]";
            }
            return null;
        }
    
        public static void i(Object str) {
            print(Log.INFO, str);
        }
    
        public static void d(Object str) {
            print(Log.DEBUG, str);
        }
    
        public static void v(Object str) {
            print(Log.VERBOSE, str);
        }
    
        public static void w(Object str) {
            print(Log.WARN, str);
        }
    
        public static void e(Object str) {
            print(Log.ERROR, str);
        }
    
        /**
         * 用于区分不同接口数据 打印传入参数
         *
         * @param index
         * @param str
         */
    
        private static void print(int index, Object str) {
            if (!OPEN_LOG) {
                return;
            }
            if (log == null) {
                log = new LogUtil(USER_NAME);
            }
            String name = log.getFunctionName();
            if (name != null) {
                str = name + " - " + str;
            }
    
            // Close the debug log When DEBUG is false
            if (!DEBUG) {
                if (index <= Log.DEBUG) {
                    return;
                }
            }
            switch (index) {
                case Log.VERBOSE:
                    Log.v(tag, str.toString());
                    break;
                case Log.DEBUG:
                    Log.d(tag, str.toString());
                    break;
                case Log.INFO:
                    Log.i(tag, str.toString());
                    break;
                case Log.WARN:
                    Log.w(tag, str.toString());
                    break;
                case Log.ERROR:
                    Log.e(tag, str.toString());
                    break;
                default:
                    break;
            }
        }
    }
    

      

  • 相关阅读:
    表单提交
    后台返回来的数据是字符串
    背景图充满屏幕
    微信小程序添加模板消息
    axios
    前端常见的跨域解决方案
    gulp的压缩
    git的使用步骤
    vue项目使用mint UI
    利用HBuilder将vue项目打包成移动端app
  • 原文地址:https://www.cnblogs.com/zhaoyanjun/p/5730092.html
Copyright © 2011-2022 走看看