android 的log工具类

1,310 阅读1分钟

写这个工类的目的:

  • 1.用于控制log的输出
  • 2.提高效率。【比如不想要log的时候不能一个一个去注释掉。】

如何控制

import android.util.Log;

public class LogUtils {
    //項目報名稱
    public static String sLogName = "LogUtils";
    //控制log的輸出
    public static boolean sIsShow = false;

    /**
     * 在application中調用
  * @param logName 項目報名稱
     * @param isShow  控制log的輸出
     */
    public static void init(String logName, boolean isShow) {
        //給靜態變量賦值不需要this
        sLogName = logName;
        sIsShow = isShow;
    }

    /**
     *
     * @param TAG       類名
     * @param content   log的内容
     */
    public static void d(String TAG, String content) {
        if (sIsShow) {
            Log.d("[" + sLogName + "]" + TAG, content);
        }
    }

    public static void v(String TAG, String content) {
        if (sIsShow) {
            Log.v("[" + sLogName + "]" + TAG, content);
        }
    }

    public static void w(String TAG, String content) {
        if (sIsShow) {
            Log.w("[" + sLogName + "]" + TAG, content);
        }
    }

    public static void e(String TAG, String content) {
        if (sIsShow) {
            Log.e("[" + sLogName + "]" + TAG, content);
        }
    }

    public static void i(String TAG, String content) {
        if (sIsShow) {
            Log.i("[" + sLogName + "]" + TAG, content);
        }
    }
}

解析:

给出项目包名称的作用:

  • 识别这个log日志所在应用程序是哪个。

工具类的特点

  • 工具类,需要把它的成员全部变成静态,这样才有意义。
  • 需要注意静态成员变量赋值,不需要this,负责找不到。如下这一句:
    public static String sLogName = "LogUtils";
    public static boolean sIsShow = false;

    public static void init(String logName, boolean isShow) {
        //給靜態變量賦值不需要this
        sLogName = logName;
        sIsShow = isShow;
    }

想问的问题:

  • 如果有很多工具类,并且都是静态的,那么这样会不会比较占内存呢?如果比较占内存会不会有更好的方法呢?