android logcat中显示当前类名函数名和行数信息

来源:互联网 发布:ubuntu搜索不到wifi 编辑:程序博客网 时间:2024/05/22 10:26

android logcat中显示当前类名函数名和行数信息

import android.util.Log;public class LogUtils {    private static final String TAG = "LogUtils";    private static final int STACK_TRACE = 3;    public static void log(String log){        StringBuffer sb = new StringBuffer(log);        sb.append(getSystemMsg());        Log.println(Log.ASSERT, TAG, sb.toString());    }    public static void logStackTrace(){        log(Log.getStackTraceString(new Throwable()));    }    private static String getSystemMsg(){        StringBuffer sb = new StringBuffer();        sb.append("  [ ");        sb.append("file:").append(getFileName()).append(", ");        sb.append("line:").append(getLineNumber()).append(", ");        sb.append("method:").append(getMethodName()).append(", ");        sb.append("class:").append(getClassName());        sb.append(" ]");        return sb.toString();    }    private static String getLineNumber(){        return String.valueOf(new Throwable().getStackTrace()[STACK_TRACE].getLineNumber());    }    private static String getMethodName(){        return new Throwable().getStackTrace()[STACK_TRACE].getMethodName();    }    private static String getClassName(){        return new Throwable().getStackTrace()[STACK_TRACE].getClassName();    }    private static String getFileName(){        return new Throwable().getStackTrace()[STACK_TRACE].getFileName();    }}

需要注意的是 STACK_TRACE , 可以理解是调用函数的堆栈数,调整这个值可以获得第STACK_TRACE次调用的函数,如果现实的函数名不对,试着调下这个值就好了!

0 0
原创粉丝点击