一、android.util.Log 常用的方法有以下5个:Log.v() ,Log.d() ,Log.i() ,Log.w() ,Log.e() ,按照日志级别从高到低为ERROR, WARN, INFO, DEBUG, VERBOSE 。
二、今天看到Log.isLoggable,想了解这个函数的作用。
三、加下面一段代码测试一下。
//android.util.Log常用的方法有以下5个:Log.v() ,Log.d() ,Log.i() ,Log.w() ,Log.e()
//按照日志级别从高到低为ERROR, WARN, INFO, DEBUG, VERBOSE
boolean ASSERT = Log.isLoggable(TAG, Log.ASSERT);
boolean ERROR = Log.isLoggable(TAG, Log.ERROR);
boolean WARN = Log.isLoggable(TAG, Log.WARN);
boolean INFO = Log.isLoggable(TAG, Log.INFO);
boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
boolean VERBOSE = Log.isLoggable(TAG, Log.VERBOSE);
boolean SUPPRESS = Log.isLoggable(TAG, -1);
if (Log.isLoggable(TAG, Log.DEBUG)) {
Log.e(TAG, "Log.e Log.isLoggable ERROR:"+ERROR+" WARN:"+WARN+" INFO:"+INFO+" DEBUG:"+DEBUG+" VERBOSE:"+VERBOSE+" ASSERT:"+ASSERT+" SUPPRESS:"+SUPPRESS);
Log.d(TAG, "Log.d Log.isLoggable ERROR:"+ERROR+" WARN:"+WARN+" INFO:"+INFO+" DEBUG:"+DEBUG+" VERBOSE:"+VERBOSE+" ASSERT:"+ASSERT+" SUPPRESS:"+SUPPRESS);
}
Log.e(TAG, "Log.e ERROR:"+ERROR+" WARN:"+WARN+" INFO:"+INFO+" DEBUG:"+DEBUG+" VERBOSE:"+VERBOSE+" ASSERT:"+ASSERT+" SUPPRESS:"+SUPPRESS);
Log.d(TAG, "Log.d ERROR:"+ERROR+" WARN:"+WARN+" INFO:"+INFO+" DEBUG:"+DEBUG+" VERBOSE:"+VERBOSE+" ASSERT:"+ASSERT+" SUPPRESS:"+SUPPRESS);
四、测试
1、默认的情况下有下面的打印,可以看出默认情况下Log.d和级别更高的会打印,但是Log.isLoggable(TAG, Log.DEBUG)是false,在里面的是不打印。可以看出默认情况下级别在Log.isLoggable(TAG, Log.DEBUG)只上的才是true。
2、设置adb shell setprop log.tag.PackageInstaller D,我这个代码的TAG是PackageInstaller,可以看到Log.isLoggable(TAG, Log.DEBUG)和级别更高的都可以打印。
扫描二维码关注公众号,回复:
14237052 查看本文章
3、adb shell setprop log.tag.PackageInstaller W,可以看到Log.isLoggable(TAG, Log.DEBUG)为false,然后在外面的Log.d也不打印,也就是说通过设置 log.tag.TAG会影响到log的输出。
4、其他另外的设置看下面,SUPPRESS会禁止打印所有日志。
adb shell setprop log.tag.TAG D
adb shell setprop log.tag.TAG V
adb shell setprop log.tag.TAG I
adb shell setprop log.tag.TAG E
adb shell setprop log.tag.TAG A
adb shell setprop log.tag.TAG S
五、参考文章
查看和设置Android Log等级和Log.isLoggable使用方法_Sunxiaolin2016的博客-CSDN博客_android log.isloggable