Android打印工具类

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cugwuhan2014/article/details/76178971
    Android打印调试类,可打印出日志所在的文件名、方法名、行号,使用的时候将Log换成LogTools即可,其他地方不变。
public class LogTools {
    private static final String DEBUG_TAG = "TEST";
    public static void v(String tag, String msg){
        Log.v(tag, LogTools.appendExtraStr(msg));
    }

    public static void i(String tag, String msg){
        Log.i(tag, LogTools.appendExtraStr(msg));
    }

    public static void d(String tag, String msg){
        Log.d(tag, LogTools.appendExtraStr(msg));
    }

    public static void w(String tag, String msg){
        Log.w(tag, LogTools.appendExtraStr(msg));
    }

    public static void e(String tag, String msg){
        Log.e(tag, LogTools.appendExtraStr(msg));
    }

    private static String appendExtraStr(String msg){
        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append(msg).append("   [").append(LogTools._FUNC_()).append("; ").append(LogTools._FILE_()).append(":").append(LogTools._LINE_()).append("]");

        return stringBuilder.toString();
    }

//当前文件名
    private static String _FILE_() {
        StackTraceElement traceElement = ((new Exception()).getStackTrace())[3];
        return traceElement.getFileName();
    }

    // 当前方法名
    private static String _FUNC_() {
        StackTraceElement traceElement = ((new Exception()).getStackTrace())[3];
        return traceElement.getMethodName();
    }

    // 当前行号
    private static int _LINE_() {
        StackTraceElement traceElement = ((new Exception()).getStackTrace())[3];
        return traceElement.getLineNumber();
    }
}

//调用堆栈
    public static void printCallStatck() {
        Throwable ex = new Throwable();
        StackTraceElement[] stackElements = ex.getStackTrace();
        StringBuilder logoutBuilder = new StringBuilder();

        if (stackElements != null) {
        	logoutBuilder.append("---------------------------------------------");
            for (int i = 0; i < stackElements.length; i++) {
            	logoutBuilder.append(stackElements[i].getClassName()+"/");
            	logoutBuilder.append(stackElements[i].getFileName()+"/");
            	logoutBuilder.append(stackElements[i].getLineNumber()+"/");
            	logoutBuilder.append(stackElements[i].getMethodName()+"\r\n");
            }
            logoutBuilder.append("---------------------------------------------");
        }
        LogTools.d(DEBUG_TAG, logoutBuilder.toString());
    }

猜你喜欢

转载自blog.csdn.net/cugwuhan2014/article/details/76178971