自定义Log工具——管理你的Log日志

在实际开发过程中,为了方便调试,我们往往会在很多地方打印大量的Log日志来方便对可能出现的BUG进行快速查找。
一个一个删,不仅浪费时间,而且遗漏的可能性非常大,删除后也不利于后期更新维护。
下面跟大家分享一个我自己使用的一个Log工具类,轻松管理Log日志,供大家参考:
import android.util.Log;

/**
 * Description: LogUtils日志工具类
 * Author: Author
 */
public class LogUtils {
 // 是否需要打印bug,可以在application的onCreate函数里面初始化
    public static boolean isDebug = true;

    // 默认TAG
    private static final String TAG = "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);
    }

    // 下面是传入自定义tag的函数
    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;

        //Xutils3的三方库
        x.Ext.init(this);
        x.Ext.setDebug(mIsDebug);
    }
}
当然别忘记了在清单文件中注册,这样当你的三方库含有Debug功能时,都可以在这里初始化,然后统一控制,当项目上线后,不需要打印日志时,只需要将mIsDebug的值改为false就可以了,是不是很方便呢?
这里再给大家分享另一种类似的Log日志工具,当你需要对你的Log级别进行精准控制时,你可以使用下面这种Log工具类。
public class LogUtil {

    public static int VERBOSE = 1;  // 显示全部log日志
    public static int DEBUG = 2;    // 显示 debug 及 debug 级别以上的log
    public static int INFO = 3;     // 只显示 info 及 info 级别以上的log
    public static int WARN = 4;     // 只显示 warn 及 warm 级别以上的log
    public static int ERROR = 5;    // 只显示 error 级别的log
    public static int NOLOG = 6;  // 不打印日志 (上线时使用)

    public static int level = VERBOSE;  // 自定义level等级

    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级别来不打印日志。
以上就是此次分享给大家的全部内容,供大家参考,有问题或者更好的建议也欢迎大家提出来。   
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值