本帖最后由 袁也老师 于 2015-11-22 17:19 编辑
在Android开发中,经常用到的一种debug手段就是打log了,但是log多了之后,版本一旦上线,肯定是要把所有的log全都删除的,如果要手动一条一条删除,那工作量实在太大了,完全不符合我们有经验的开发人员的身份嘛。 今天我们就在深圳问答网中找到了解决方法:
----------------------------------------------华丽的分割线----------------------------------------------
- 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);
- }
- }
-
- }
复制代码
接下来我们提供了v()、d()、i()、w()、e()这五个自定义的日志方法,在其内部分别调用了Log.v()、Log.d()、Log.i()、Log.w()、Log.e()这五个方法来打印日志,只不过在这些自定义的方法中我们都加入了一个if判断,只有当LEVEL常量的值小于或等于对应日志级别值的时候,才会将日志打印出来。
这样就把一个自定义的日志工具创建好了,之后在项目里我们可以像使用普通的日志工具一样使用LogUtil,比如打印一行DEBUG级别的日志就可以这样写:
LogUtil.d("TAG", "debug log"); 打印一行WARN级别的日志就可以这样写:
LogUtil.w("TAG", "warn log"); 然后我们只需要修改LEVEL常量的值,就可以自由地控制日志的打印行为了。比如让LEVEL等于VERBOSE就可以把所有的日志都打印出来,让LEVEL等于WARN就可以只打印警告以上级别的日志,让LEVEL等于NOTHING就可以把所有日志都屏蔽掉。
使用了这种方法之后,刚才所说的那个问题就不复存在了,你只需要在开发阶段将LEVEL指定成VERBOSE,当项目正式上线的时候将LEVEL指定成NOTHING就可以了。
----------------------------------------------华丽的分割线----------------------------------------------
简单一点,就是把所有Log封装好,通过一个Boolean判断是否显示就可以啦。
现在大家是不是觉得经验又更加丰富了!
|