Log.isLoggable之一正确的使用姿势



DEBUG方法比较

当我们在做APP开发时,需要设置调试开关打印Log,下面我列举出3种方法:

方法一:直接赋值

public static final boolean DEBUG = true;//false

1

方法二:设置BuildConfig.DEBUG的值

public static final boolean DEBUG = BuildConfig.DEBUG;

1

方法三:设置Log.isLoggable的值

public static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);

1

当然这里可能还有很多别的设置方法,由于个人局限就没有写了。下面我们来看看上面3种方法各自的特点:

方法一比较直观明了,可以清楚的知道是否允许打印Log。

方法二和编译模式绑定,如果是release版的就不会打印Log,如果是debug版的话就会打印Log。

方法三通过设置property属性来打印Log

从他们的特点来看我们知道,第一种和第二种方法我们至少需要编译两个版本的软件用于发布和调试。

第三种方法我们只需要编译一个版本既可以。在我们需要查看Log的时候,通过设置property即可查看Log。下面来详细介绍下Log.isLoggable的使用。

Log.isLoggable的使用姿势

步骤一:

MainActivity.java

public static final String TAG = "Main";

public static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);

public void onCreate(){

if (DEBUG){

Log.d(TAG, "onCreate");

}

}


步骤二:

adb shell setprop log.tag.Main D

1

或者

修改/data/local.prop文件(该方法不一定有效,根据不同的系统,可能不会去读取local.prop文件)

log.tag.Main=D

1

注:这里的TAG要加上log.tag.做前缀

步骤三:

退出APP,重新进入,即可打印Log(注:这里之所以要退出APP是因为我们定义的DEBUG是全局的,所以需要重新赋值)。

当然你们也可以设置成局部变量,这样就不需要重新进入了,这样就可以免除第三步。