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