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 加入
我能做的,就是调整好自己的精神状态,以最佳的面貌去面对那些未曾经历过得事情,对生活充满热情和希望。











评论