您的位置:首页 > 移动开发 > Android开发

Android Log高级用法

2015-12-02 11:33 435 查看

Log Level

我们知道不管在AS还是Eclipse中查看log,选择不同的Log Level查看到不同的log

只有当前的level比Log Level要大,才会显示log,做了过滤

/**
* Priority constant for the println method; use Log.v.
*/
public static final int VERBOSE = 2;

/**
* Priority constant for the println method; use Log.d.
*/
public static final int DEBUG = 3;

/**
* Priority constant for the println method; use Log.i.
*/
public static final int INFO = 4;

/**
* Priority constant for the println method; use Log.w.
*/
public static final int WARN = 5;

/**
* Priority constant for the println method; use Log.e.
*/
public static final int ERROR = 6;

/**
* Priority constant for the println method.
*/
public static final int ASSERT = 7;


Log.isLoggable方法的使用

android 动态控制logcat日志开关,通过Log.isLoggable(TAG,level)方法动态控制,

1.添加日志的时候加入判断

String TAG="Volley";
boolean isDbug=Log.isLoggable(TAG, Log.VERBOSE);
if (isDbug) {
Log.w(TAG, "log");
}


2.通过设置属性值来控制该日志开关

首先可以通过
adb shell getprop log.tag.Volley
查看系统属性值 如果没有设置是查看不到值的,但是同时默认值是INFO,就是说如果不做任何设置,Log.isLoggable(TAG, Log.VERBOSE);返回的都将是false,因为VERBOSE等级值比INFO小

通过
adb shell setprop log.tag.Volley VERBOSE
设置该TAG的输出级别为VERBOSE。 那么说明Log.isLoggable(“Volley”, Log.VERBOSE) level为VERBOSE以及以上的level的都返回true,又因为VERBOSE就是最小的一个等级,所以isLoggable返回的始终是true,每设置一次,只能用于一部手机没有重启的情况,如果换一部或者重启要重新设置一下;这样的好处是,自己开发的手机设置一次,都能打印VERBOSE,编译给别的手机就不能打印VERBOSE信息,这样就不用每次正式发布时要把isDbug设置为false。该属性值取值顺序为【V,D,I,W,E,A,S】 A表示最高级别的日志,即assert;S表示Suppress,即停止该日志的输出。

也可以将该属性添加在data/local.prop属性文件中,不同的是,只要存在local.prop,该手机重启与否都一样,可以打印VERBOSE
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android