在调试的时候,我们往往会使用Log,也就是日志。它也有一个缺陷,如果你不想在项目上线之后依然打印这些日志(有的可能涉及到机密),就必须一行行地删除掉这些代码,非常麻烦。有没有什么办法可以在项目上线之后自动屏蔽这些日志呢?
看起来是很复杂的功能,其实自己创建一个LogUtil类就可以实现了:
public class LogUtil {
public static final int VERBOSE = 1;
public static final int DEBUG = 2;
public static final int INFO = 3;
public static final int WARN = 4;
public static final int ERROR = 5;
public static final int NOTHING = 6;
public static final 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默认值为VERBOSE。这样在工程调试的过程中,使用LogUtil.x(tag, msg)就可以输出所有日志。在工程发布之前,把LEVEL改成NOTHING,就不会输出日志信息了。