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