安卓非常好用的Log工具类,快速定位到当前行数

来源:互联网 发布:c语言输出txt文件内容 编辑:程序博客网 时间:2024/06/05 07:25

直接贴代码

import android.util.Log;import com.ast.smartlighter.BuildConfig;public class LogUtils {    static String className;//类名    static String content;    static String methodName;//方法名    static int lineNumber;//行数    private LogUtils() {        /* Protect from instantiations */    }    public static boolean isDebuggable() {        return BuildConfig.DEBUG;    }    private static String createLog(String log) {        StringBuffer buffer = new StringBuffer();        buffer.append(methodName);        buffer.append("(").append(content).append(":").append(lineNumber).append(")");        buffer.append(log);        return buffer.toString();    }    private static void getMethodNames(StackTraceElement[] sElements) {        content = sElements[1].getFileName();        className = sElements[1].getClassName();        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;        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));    }}