Android工具包 LogUtils集合

Posted 彬sir哥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android工具包 LogUtils集合相关的知识,希望对你有一定的参考价值。

Android工具包 LogUtils集合,工作也有常见的
LogUtils.java

public class LogUtils {
    /** 日志输出级别NONE */
    public static final int LEVEL_NONE = 0;//不输出任和log
    /** 日志输出级别V */
    public static final int LEVEL_VERBOSE = 1;
    /** 日志输出级别D */
    public static final int LEVEL_DEBUG = 2;//调试 蓝色
    /** 日志输出级别I */
    public static final int LEVEL_INFO = 3;//提现 绿色
    /** 日志输出级别W */
    public static final int LEVEL_WARN = 4;//警告 橙色
    /** 日志输出级别E */
    public static final int LEVEL_ERROR = 5;//错误 红色

    /** 日志输出时的TAG */
    private static String mTag = "GooglePlay";
    /** 是否允许输出log */
    private static int mDebuggable = LEVEL_ERROR;

    /** 用于记时的变量 */
    private static long mTimestamp = 0;
    /** 写文件的锁对象 */
    private static final Object mLogLock = new Object();

    /** 以级别为 d 的形式输出LOG */
    public static void v(String msg) {
        if (mDebuggable >= LEVEL_VERBOSE) {
            Log.v(mTag, msg);
        }
    }

    /** 以级别为 d 的形式输出LOG */
    public static void d(String msg) {
        if (mDebuggable >= LEVEL_DEBUG) {
            Log.d(mTag, msg);
        }
    }

    /** 以级别为 i 的形式输出LOG */
    public static void i(String msg) {
        if (mDebuggable >= LEVEL_INFO) {
            Log.i(mTag, msg);
        }
    }

    /** 以级别为 w 的形式输出LOG */
    public static void w(String msg) {
        if (mDebuggable >= LEVEL_WARN) {
            Log.w(mTag, msg);
        }
    }

    /** 以级别为 w 的形式输出Throwable */
    public static void w(Throwable tr) {
        if (mDebuggable >= LEVEL_WARN) {
            Log.w(mTag, "", tr);
        }
    }

    /** 以级别为 w 的形式输出LOG信息和Throwable */
    public static void w(String msg, Throwable tr) {
        if (mDebuggable >= LEVEL_WARN && null != msg) {
            Log.w(mTag, msg, tr);
        }
    }

    /** 以级别为 e 的形式输出LOG */
    public static void e(String msg) {
        if (mDebuggable >= LEVEL_ERROR) {
            Log.e(mTag, msg);
        }
    }

    /** 以级别为 e 的形式输出Throwable */
    public static void e(Throwable tr) {
        if (mDebuggable >= LEVEL_ERROR) {
            Log.e(mTag, "", tr);
        }
    }

    /** 以级别为 e 的形式输出LOG信息和Throwable */
    public static void e(String msg, Throwable tr) {
        if (mDebuggable >= LEVEL_ERROR && null != msg) {
            Log.e(mTag, msg, tr);
        }
    }

    /**
     * 以级别为 e 的形式输出msg信息,附带时间戳,用于输出一个时间段起始点
     *
     * @param msg
     *            需要输出的msg
     */
    public static void msgStartTime(String msg) {
        mTimestamp = System.currentTimeMillis();
        if (!TextUtils.isEmpty(msg)) {
            e("[Started:" + mTimestamp + "]" + msg);
        }
    }

    /** 以级别为 e 的形式输出msg信息,附带时间戳,用于输出一个时间段结束点* @param msg 需要输出的msg */
    public static void elapsed(String msg) {
        long currentTime = System.currentTimeMillis();
        long elapsedTime = currentTime - mTimestamp;
        mTimestamp = currentTime;
        e("[Elapsed:" + elapsedTime + "]" + msg);
    }

    public static <T> void printList(List<T> list) {
        if (list == null || list.size() < 1) {
            return;
        }
        int size = list.size();
        i("---begin---");
        for (int i = 0; i < size; i++) {
            i(i + ":" + list.get(i).toString());
        }
        i("---end---");
    }

    public static <T> void printArray(T[] array) {
        if (array == null || array.length < 1) {
            return;
        }
        int length = array.length;
        i("---begin---");
        for (int i = 0; i < length; i++) {
            i(i + ":" + array[i].toString());
        }
        i("---end---");
    }

    public static void LogMap(Map<String, String> args){
        if(AppConfig.IS_LOG&&args!=null){
            for(Map.Entry<String,String> entry:args.entrySet()){
                Log.i(entry.getKey(),entry.getValue());
            }
        }
    }

    public static void LogObj(Object object){
        if(AppConfig.IS_LOG&&object!=null){

            Log.i("getData: **", JsonUtil.toJson(object));
        }
    }
}

AppConfig.java

public class AppConfig {
    public static final boolean DEBUG = true;//测试
    public static final String URI_BASE = DEBUG?"http://www.xxx.com:xxx/":"http://xx.xxx.xxx.xxx:xxx/";;
    public static final String URL = "http://xxx.xxx.x.xxx:xxxx/Handler1.ashx/";
    public static final boolean IS_LOG = DEBUG;
}

看一下,我的Log打印信息
我的代码

                final Map<String, String> args = new HashMap<>();
                args.put("username",username);
                args.put("password",password);
                args.put("param", GetDataParam.Get_User_Record.name());
                LogUtils.LogMap(args);//Log打印信息

打印信息好了如下:

08-10 16:57:26.544 19190-19190/com.datab.cn I/password: 111
08-10 16:57:26.545 19190-19190/com.datab.cn I/param: Get_User_Record
08-10 16:57:26.545 19190-19190/com.datab.cn I/username: 666

以上是关于Android工具包 LogUtils集合的主要内容,如果未能解决你的问题,请参考以下文章

Android项目开发常用工具类LogUtils

Android LogUtils打印日志工具类

LogUtils日志管理工具

Android日志打印类LogUtils,能够定位到类名,方法名以及出现错误的行数并保存日志文件

Android-java Log封装,目前感觉最适合自己的LogUtils

Android-java Log封装,目前感觉最适合自己的LogUtils