自定义Log工具

/**
 * @author zhou.jn on 2018/11/27 17:22.
 */

public class SLog {
    private static final String TAG_FILTER = "_Util";
    //第二种方法控制Log输出。
    public static final boolean IS_DEBUG = false;
    public static final int VERBOSE = 2;
    public static final int DEBUG = 3;
    public static final int INFO = 4;
    public static final int WARN = 5;
    public static final int ERROR = 6;
    public static final int ASSERT = 7;
    public static int mLevel = 0;

    public static int getmLevel() {
        return mLevel;
    }

    public static void setmLevel(int mLevel) {
        SLog.mLevel = mLevel;
    }

    public static void v(String tag, String msg) {
        if (mLevel <= VERBOSE) {
            Log.v(tag + TAG_FILTER, msg);
        }
    }

    public static void i(String tag, String msg) {
        if (mLevel <= INFO) {
            Log.i(tag + TAG_FILTER, msg);
        }
    }

    public static void e(String tag, String msg) {
        if (mLevel <= ERROR) {
            Log.e(tag + TAG_FILTER, msg);
        }
    }

    public static void d(String tag, String msg) {
        if (mLevel <= DEBUG) {
            Log.d(tag + TAG_FILTER, msg);
        }
    }
    public static void w(String tag, String msg) {
        if (mLevel <= WARN) {
            Log.w(tag + TAG_FILTER, msg);
        }
    }
    public static void a(String tag, String msg) {
        if (mLevel <= ASSERT) {
            Log.wtf(tag + TAG_FILTER, msg);
        }
    }
}

自定义Log的好处

  1. 控制Log的输出。在开发阶段,需要打印大量的Log,但发布版本时需要将Log去掉,不能一行一行的去除Log,使用自定义Log,在需要隐藏Log的时候,只需要将设置:SLog.setLevel()调高可以显示的Log的等级,这样,低于level的Log则不会被打印。(或者用Boolean 类型的 isDebug做标记也可以)
  2. 建议采用控制Log输出的第二种方法:使用Boolean类型去判断是否,在自定义的Log上面添加一个布尔类型标志位,在每次使用的时候,进行判断后再使用,这样,当产生大量的日志时,可以避免产生Log中的字符串,直接在使用Log前就进行判断。缺点:在使用的时候就会要多写一些代码,但可以通过配置Android的打印Log的快捷键来优化使用时的不便。
		//在使用的时候增加了一行判断代码
       if (SLog.IS_DEBUG){
            SLog.v(TAG, "stop");
         }

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_37716758/article/details/84570971