Adnroid 简单易用的Log

来源:互联网 发布:android数独游戏源码 编辑:程序博客网 时间:2024/05/16 14:50

个人觉得,android开发中的log很必要,但为了log去依赖第三方库,却又显得太重,真是此事古难全啊。

于是乎,简单的包装下log日常使用,惶惶恐难辨优劣,发上来欢迎吐槽~

废话不多,上码


public class AppLog {    public static void v(String content) {        if (BuildConfig.DEBUG) {            Log.d(generateTag(), content);        }    }    public static void d(String content) {        if (BuildConfig.DEBUG) {            Log.d(generateTag(), content);        }    }    public static void i(String content) {        if (BuildConfig.DEBUG) {            Log.i(generateTag(), content);        }    }    public static void w(String content) {        if (BuildConfig.DEBUG) {            Log.w(generateTag(), content);        }    }    public static void e(String content) {        if (BuildConfig.DEBUG) {            Log.e(generateTag(), content);        }    }    public static void wtf(Throwable t) {        if (BuildConfig.DEBUG) {            Log.wtf(generateTag(), t);        }    }    public static void wtf(String content) {        if (BuildConfig.DEBUG) {            Log.wtf(generateTag(), content);        }    }    public static void json(String content) {        if (BuildConfig.DEBUG) {            printJson(generateTag(), content);        }    }    private static StackTraceElement getCallerStackTraceElement() {        return Thread.currentThread().getStackTrace()[5];    }    private static String generateTag() {        String tag = "%s.%s(L:%d)";        StackTraceElement caller = getCallerStackTraceElement();        String callerClazzName = caller.getClassName();        callerClazzName = callerClazzName.substring(callerClazzName.lastIndexOf(".") + 1);        tag = String.format(tag, callerClazzName, caller.getMethodName(), caller.getLineNumber());        return tag;    }    private static void printJson(String tag, String msg) {        String message;        try {            if (msg.startsWith("{")) {                message = new JSONObject(msg).toString(4);            } else if (msg.startsWith("[")) {                message = new JSONArray(msg).toString(4);            } else {                message = msg;            }        } catch (JSONException e) {            message = msg;        }        String[] lines = message.split(System.getProperty("line.separator"));        blockStart(tag);        for (String line : lines) {            Log.d(tag, "║ " + line);        }        blockEnd(tag);    }    private static void blockStart(String tag) {        Log.d(tag, "╔═══════════════════════════════════════════════════════════════════════════════════════");    }    private static void blockEnd(String tag) {        Log.d(tag, "╚═══════════════════════════════════════════════════════════════════════════════════════");    }}

用法略偷笑

效果如下:






0 0
原创粉丝点击