在調試的時候,我們往往會使用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,就不會輸出日誌信息了。