log开关控制

来源:互联网 发布:o2o电商平台源码下载 编辑:程序博客网 时间:2024/04/29 09:53

对于代码中的log,可以用BuildConfig中的变量来控制输出。


buildTypes 

{release 

{buildConfigField "boolean", "LOG_DEBUG", "false" 

proguardFiles getDefaultProguardFile('proguard-android.txt'), 

'proguard-rules.pro'signingConfig signingConfigs.release} 

 

debug

{ 

buildConfigField "boolean", "LOG_DEBUG", "true"  

}

}

编译时,在生成的BuildConfig.java文件中,会存在LOG_DEBUG变量

LOG_DEBUG为总开关,代码中打log要这么写

if(BuildConfig.LOG_DEBUG)

{

  log.d(xxxxx);

}

编译器如果发现LOG_DEBUG为true,在编译时根本不会把log.d(xxxx)编译进去。


在某个功能模块,如果存在频繁打印的log,可以再定义一个开关

private static final boolean DEV_LOG = BuildConfig.LOG_DEBUG && false;

如果功能没问题,这个开关是关闭的。一旦功能出了问题,我们再手动改成BuildConfig.LOG_DEBUG && true; 打开这个开关进行定位。


总结一下,存在两级log开关:

1 总开关:

根据版本类型来控制,

2 模块开关

为防止某些频繁打印的log影响性能,单独在模块内再用一个开关来控制log输出

0 0