Kevin Su bio photo

Kevin Su

patience, persevere, and enjoy

Email Github Stackoverflow

关于Log

因为在新的项目中需要自己定义日志的内容,所以查看的Volley的日志系统作为参考,其中发现了一个isLoggale的方法.这个方法的作用主要是可以设置自己的Log的级别.例如V:verbose,D:debug一样,可以通过该方法设置一个Tag,作为你自己的打印级别,因为你设置的tag的名字,别人是不知道的,所以就可以不需要区分正式包or测试包,直接打印设置的Log.

通过分析Volley中使用的方式来了解具体怎么使用:

/**
 * Customize the log tag for your application, so that other apps
 * using Volley don't mix their logs with yours.
 * <br />
 * Enable the log property for your tag before starting your app:
 * <br />
 * {@code adb shell setprop log.tag.&lt;tag&gt;}
 */
public static void setTag(String tag) {
    d("Changing log tag to %s", tag);
    TAG = tag;

    // Reinitialize the DEBUG "constant"
    DEBUG = Log.isLoggable(TAG, Log.VERBOSE);
}

其实很简单,就是直接调用该方法,把你想要设置的tag的名称传进去就可以.至于怎么在log的控制台中显示,通过以下方式:
在控制台中输入: adb shell setprop log.tag.TAG VERBOSE
其中TAG就是在代码中设置的名称.

这样,就可以很轻松的获取自己定义的Tag所打印的log,而不需要正式包和测试包设置Debugable这样的参数.

接下来了解以下Log中的几个方法: 按照严重等级从小到大,v(),d(),i(),w(),e()

  • v:verbose,啰嗦的
  • d:debug,排除..错误
  • i:info,信息
  • w:warn,警告
  • e:error,错误

v,d都不应该出现在正式包中把内容打印出来.

还可以通过定义local.prop文件,放入data/目录下

	log.tag.IndexActivity=WARN  把一个tag定义为什么等级

参考