android Log.isLoggable使用

android 动态控制logcat日志开关,通过Log.isLoggable(TAG,level)方法动态控制。
此API可以实现不更换APK,在出问题的手机上就直接能抓到有效log,能提升不少工作效率。
该方法说明:

/** 
 * Checks to see whether or not a log for the specified tag is loggable at the specified level. 
 * 
 *  The default level of any tag is set to INFO. This means that any level above and including 
 *  INFO will be logged. Before you make any calls to a logging method you should check to see 
 *  if your tag should be logged. You can change the default level by setting a system property: 
 *      'setprop log.tag.<YOUR_LOG_TAG> <LEVEL>' 
 *  Where level is either VERBOSE, DEBUG, INFO, WARN, ERROR, ASSERT, or SUPPRESS. SUPPRESS will 
 *  turn off all logging for your tag. You can also create a local.prop file that with the 
 *  following in it: 
 *      'log.tag.<YOUR_LOG_TAG>=<LEVEL>' 
 *  and place that in /data/local.prop. 
 * 
 * @param tag The tag to check. 
 * @param level The level to check. 
 * @return Whether or not that this is allowed to be logged. 
 * @throws IllegalArgumentException is thrown if the tag.length() > 23. 
 */  
public static native boolean isLoggable(String tag, int level);  

从以上定义中可以知道:
1. isLoggable默认level为android.util.Log.INFO;

  1. 只有 level >= INFO才能输出,即level >= INFO时isLoggable返回true,反之则返回false;

  2. 可以通过setprop log.tag. 来改变log的默认level,如adb shell setprop log.tag.InCall D。也可以将这些属性按照log.tag.InCall=D的形式,写入/data/local.prop中;

  3. tag的长度如果超过23个字符则会抛出IllegalArgumentException异常;

在android.util.Log类中定义了Log的6种Level,如下:
VERBOSE 、DEBUG 、INFO 、WARN 、ERROR 、ASSERT 。

遇到的问题

1、adb端口被占用
参考Android ADB 端口占用问题解决方案
也可以以指定端口启动adb,例:adb -P 5000 start-server;

2\adb shell error: no devices/emulators found
可以使用adb kill-server、adb start-server重新启动adb服务

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值