您的位置:首页 > 产品设计 > UI/UE

android Log控制小技巧--BuildConfig.DEBUG的使用

2015-01-29 10:36 393 查看
log控制输出,有个小技巧:

ADT(r17)中添加了一个新功能可以允许开发者只在debug模式下允许某些代码,Build系统会自动生成一个BuilldConfig的类,里面包含一个DEBUG静态常量,该常量可以根据Build类型自动设置值,利用此常量可以编写debug模式下跑的代码,而不再需要手动配置变量,避免忘记修改在release版本泄露debug信息。日志类可以这么写:

import android.util.Log;
import static com.jjx.hope.BuildConfig.DEBUG;;

public final class L {

	public static void d(String tag, String str) {
		if (DEBUG) {
			Log.d(tag, str);
		}
	}

	public static void v(String tag, String str) {
		if (DEBUG) {
			Log.v(tag, str);
		}
	}

	public static void i(String tag, String str) {
		if (DEBUG) {
			Log.i(tag, str);
		}
	}

	public static void e(String tag, String str) {
		if (DEBUG) {
			Log.e(tag, str);
		}
	}
	
	/**
	 * 打印当前方法的调用栈
	 * @param Tag
	 * @param printDepth 打印的最大调用层数,若为0,只打印当前方法信息
	 */
	public static void printMethodCallStack(String Tag, int printDepth){ 
		if (DEBUG) {
			StackTraceElement stack[] = (new Throwable()).getStackTrace();
			StackTraceElement stackTraceElement = null;
			int depth = Math.min(stack.length, printDepth + 2);
			for (int i = 1; i < depth; i++) {
				stackTraceElement = stack[i];
				Log.i(Tag, "["+(i-1)+"]"+stackTraceElement.getClassName()+"."+stackTraceElement.getMethodName()+"(...)");
				Log.i(Tag, "	--"+stackTraceElement.getFileName()+"#"+stackTraceElement.getLineNumber()); 
			}
		}
	}
}


情怀
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: