Android中自带的日志工具功能非常强大,但也不能说完全没有缺点,例如在打印日志的控制方面就做的不够好。
所以我们在编写一个比较庞大的项目,期间为了方便调试,能够自由地控制日志的打印,而且不费力气呢?第一行代码里面是这样写的一个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.v(tag,msg); } } public static void i(String tag, String msg){ if (LEVEL <= INFO){ Log.v(tag,msg); } } public static void w(String tag, String msg){ if (LEVEL <= WARN){ Log.v(tag,msg); } } public static void e(String tag, String msg){ if (LEVEL <= ERROR){ Log.v(tag,msg); } } }
这样就把一个自定义的日志工具创建好了,之后在项目里我们可以像使用普通的日志工具一样使用LogUtil,比如打印一行DEBUG级别的日志就可以这样写:
LogUtil.d("TAG", "warn log");
打印一行WARN级别的日志就可以这样写:
Log.w("TAG", "warn log");
然后我们只需要修改LEVEL常量的值,就可以自由地控制日志的打印行为了。比如让LEVEL等于VERBOSE就可以把所有的日志打印出来,
让LEVEL等于WARN就可以只打印警告以上级别的日志,让LEVEL等于NOTHING就可以把所有的日志都屏蔽掉。
使用了这种方法之后,你只需在开发阶段将LEVEL指定成VERBOSE,当项目正式上线的时候将LEVEL指定成NOTHING就可以了。