LogUtil 日志工具类的封装
发布于: 刚刚

1.知识点
腾讯开源了 xlog 高性能日志框架
支持加密
支持压缩
支持打印输出到文件
官方链接:https://github.com/Tencent/mars
在我们上线的应用实际使用过程中,xlog 可以满足日常的开发、测试、定位问题的需求,且降低在性能方面影响。
2.原理
build.gradle文件
dependencies {	implementation com.tencent.mars:mars-xlog:1.2.4}复制代码
 3.代码
import com.tencent.mars.xlog.Log;import com.tencent.mars.xlog.Xlog;
/** * 日志处理工具类 * 打印机制: * 1、Debug所需信息,一律在Release版本不打印,使用对当前模式进行判断区分 * 2、Release版本需要打印辅助信息到本地文件,方便排查问题 */public class LogUtil {
    private final static String TAG = "LogUtil";
    /**     * 开启日志打印,只需要调用一次     */    public static void open(String path){        final String cachePath = "";        if(isDebug){            Xlog.open(true, Xlog.LEVEL_DEBUG, Xlog.AppednerModeSync, cachePath, path, TAG, "");            Xlog.setConsoleLogOpen(true);        }else {            Xlog.open(true, Xlog.LEVEL_DEBUG, Xlog.AppednerModeAsync, cachePath, path, TAG, "");            Xlog.setConsoleLogOpen(false);        }
        Log.setLogImp(new Xlog());    }
    /**     * 关闭日志打印,只需要调用一次     */    public static void close(){        Log.appenderClose();    }
    private static final boolean isDebug = BuildConfig.DEBUG; // release版本,不打印log
    public static void v(String tag, String msg) {        if (isDebug)            Log.v(tag, msg);    }
    public static void d(String tag, String msg) {        if (isDebug)            Log.d(tag, msg);    }
    public static void i(String tag, String msg) {        if (isDebug)            Log.i(tag, msg);    }
    public static void e(String tag, String msg) {        if (isDebug)            Log.e(tag, msg);    }
    /**     * 标签为类名     *     * @param clazz     * @param msg     */    public static void v(Class clazz, String msg) {        if (isDebug) {            if (clazz != null) {                Log.v(clazz.getSimpleName(), msg);            } else {                Log.v(TAG, msg);            }        }    }
    public static void i(Class clazz, String msg) {        if (isDebug) {            if (clazz != null) {                Log.i(clazz.getSimpleName(), msg);            } else {                Log.i(TAG, msg);            }        }    }
    public static void d(Class clazz, String msg) {        if (isDebug) {            if (clazz != null) {                Log.d(clazz.getSimpleName(), msg);            } else {                Log.d(TAG, msg);            }        }    }
    public static void e(Class clazz, String msg) {        if (isDebug) {            if (clazz != null) {                Log.e(clazz.getSimpleName(), msg);            } else {                Log.e(TAG, msg);            }        }    }
    /**     * 无论什么版本,都会打印到控制台,并打印到本地文件     *     * @param tag     * @param msg     */    public static void printE(String tag, String msg) {        Log.e(tag, msg);    }
    public static void printE(Class clazz, String msg) {        if (clazz != null) {            Log.e(clazz.getSimpleName(), msg);        } else {            Log.e(TAG, msg);        }    }
    public static void printD(String tag, String msg) {        Log.d(tag, msg);    }
    public static void printD(Class clazz, String msg) {        if (clazz != null) {            Log.d(clazz.getSimpleName(), msg);        } else {            Log.d(TAG, msg);        }    }
    public static void printI(String tag, String msg) {        Log.i(tag, msg);    }
    public static void printI(Class clazz, String msg) {        if (clazz != null) {            Log.i(clazz.getSimpleName(), msg);        } else {            Log.i(TAG, msg);        }    }
    public static void printV(String tag, String msg) {        Log.v(tag, msg);    }
    public static void printV(Class clazz, String msg) {        if (clazz != null) {            Log.v(clazz.getSimpleName(), msg);        } else {            Log.v(TAG, msg);        }    }}
复制代码
 划线
评论
复制
发布于: 刚刚阅读数: 2
版权声明: 本文为 InfoQ 作者【Changing Lin】的原创文章。
原文链接:【http://xie.infoq.cn/article/9ceb61333be2823f990e760df】。文章转载请联系作者。
Changing Lin
关注
获得机遇的手段远超于固有常规之上~ 2020.04.29 加入
我能做的,就是调整好自己的精神状态,以最佳的面貌去面对那些未曾经历过得事情,对生活充满热情和希望。











    
评论