Android部分开源项目源码分析--log信息的打印

来源:互联网 发布:snip软件下载 编辑:程序博客网 时间:2024/05/10 09:25

前言:

平常在android应用的开发的过程中间,我们都需要对应用的部分信息,打印出来,好在LogCat中查看。

        然而,普通的日志的打印,有时候是很难定位到具体的代码中的。

      在 https://github.com/MustafaFerhan/DebugLog 提供了一种比较好的日志的显示的方式。



我们可以定位到具体代码的每一行和每个方法;

Code:

/** * @date 21.06.2012 * @author Mustafa Ferhan Akman *  * Create a simple and more understandable Android logs.  * */public class DebugLog{static String className;static String methodName;static int lineNumber;    private DebugLog(){        /* Protect from instantiations */    }       /**     * 判断是否是处在debug模式下,只有在这种模式下才打印日志;     * @return     */public static boolean isDebuggable(){return BuildConfig.DEBUG;}private static String createLog(String log){StringBuffer buffer = new StringBuffer();buffer.append("[");buffer.append(methodName);buffer.append(":");buffer.append(lineNumber);buffer.append("]");buffer.append(log);return buffer.toString();}private static void getMethodNames(StackTraceElement[] sElements){className = sElements[1].getFileName();methodName = sElements[1].getMethodName();lineNumber = sElements[1].getLineNumber();}public static void e(String message){if (!isDebuggable())return;// Throwable instance must be created before any methods  getMethodNames(new Throwable().getStackTrace());Log.e(className, createLog(message));}public static void i(String message){if (!isDebuggable())return;getMethodNames(new Throwable().getStackTrace());Log.i(className, createLog(message));}public static void d(String message){if (!isDebuggable())return;getMethodNames(new Throwable().getStackTrace());Log.d(className, createLog(message));}public static void v(String message){if (!isDebuggable())return;getMethodNames(new Throwable().getStackTrace());Log.v(className, createLog(message));}public static void w(String message){if (!isDebuggable())return;/** * new Throwable().getStackTrace() 跟踪应用的堆栈的信息    */getMethodNames(new Throwable().getStackTrace());Log.w(className, createLog(message));}public static void wtf(String message){if (!isDebuggable())return;getMethodNames(new Throwable().getStackTrace());Log.wtf(className, createLog(message));}}

参考:https://github.com/MustafaFerhan/DebugLog


















0 0
原创粉丝点击