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

来源:互联网 发布:h5 js 打开支付宝app 编辑:程序博客网 时间:2024/05/16 07:45

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()); }}}}

情怀

0 0