在实际开发过程中,为了方便调试,我们往往会在很多地方打印大量的Log日志来方便对可能出现的BUG进行快速查找。
一个一个删,不仅浪费时间,而且遗漏的可能性非常大,删除后也不利于后期更新维护。
下面跟大家分享一个我自己使用的一个Log工具类,轻松管理Log日志,供大家参考:
import android.util.Log;
/**
* Description: LogUtils日志工具类
* Author: Author
*/
public class LogUtils {
public static boolean isDebug = true;
private static final String TAG = "TAG";
public static void i(String msg) {
if (isDebug)
Log.i(TAG, msg);
}
public static void d(String msg) {
if (isDebug)
Log.d(TAG, msg);
}
public static void e(String msg) {
if (isDebug)
Log.e(TAG, msg);
}
public static void v(String msg) {
if (isDebug)
Log.v(TAG, msg);
}
public static void i(String tag, String msg) {
if (isDebug)
Log.i(tag, msg);
}
public static void d(String tag, String msg) {
if (isDebug)
Log.d(tag, msg);
}
public static void e(String tag, String msg) {
if (isDebug)
Log.e(tag, msg);
}
public static void v(String tag, String msg) {
if (isDebug)
Log.v(tag, msg);
}
}
这样我们只需要通过修改isDebug的值,就能轻松控制Log日志是否打印,这里还用到了方法的重载,可以直接定义好TAG的值,可以减少调用时的代码量。
但是有过开发经验的朋友还会发现另外一个问题,就是实际开发中必定用到很多三方库,而这些三方库中很多又自带有Debug功能,这样给我们的管理就带来了很大的困难,这里也给大家分享一种解决方案:在MyApplication中将这些Debug统一初始化,然后统一管理。
import android.app.Application;
import com.shifu.utils.LogUtils;
import org.xutils.x;
/**
* Description:
* Author: Author
*/
public class MyApplication extends Application {
public static final boolean mIsDebug = true;
@Override
public void onCreate() {
super.onCreate();
initLogutils();
}
private void initLogutils() {
LogUtils.isDebug = mIsDebug;
x.Ext.init(this);
x.Ext.setDebug(mIsDebug);
}
}
当然别忘记了在清单文件中注册,这样当你的三方库含有Debug功能时,都可以在这里初始化,然后统一控制,当项目上线后,不需要打印日志时,只需要将mIsDebug的值改为false就可以了,是不是很方便呢?
这里再给大家分享另一种类似的Log日志工具,当你需要对你的Log级别进行精准控制时,你可以使用下面这种Log工具类。
public class LogUtil {
public static int VERBOSE = 1;
public static int DEBUG = 2;
public static int INFO = 3;
public static int WARN = 4;
public static int ERROR = 5;
public static int NOLOG = 6;
public static int level = VERBOSE;
public static void v(String tag, String msg) {
if (level <= VERBOSE) {
Log.v(tag, msg);
}
}
public static void d(String tag, String msg) {
if (level <= DEBUG) {
Log.d(tag, msg);
}
}
public static void i(String tag, String msg) {
if (level <= INFO) {
Log.i(tag, msg);
}
}
public static void w(String tag, String msg) {
if (level <= WARN) {
Log.w(tag, msg);
}
}
public static void e(String tag, String msg) {
if (level <= ERROR) {
Log.e(tag, msg);
}
}
}
现在,你只需要修改level的值,就能轻松打印你想要的级别的Log了,同时也可以直接将level设置成NOLOG级别来不打印日志。
以上就是此次分享给大家的全部内容,供大家参考,有问题或者更好的建议也欢迎大家提出来。