高逼格Log日志,可以导航跳转的log

不管是Android开发还是java开发,Log日志一直是很重要的辅助调试工具,日志只能用来看吗?当然不是,还能用来导航跳转。

友情提示:本文只提供提高逼格方法方式,基础知识请自行学习。不要问我原理,工具就是那么设计的。

简书上IT平头哥是我,没有抄袭。


不知道大家会不会利用java提供的StackTraceElement,利用这个可以打印堆栈信息,不知道请自行查阅相关文档。可以获取类名方法名和行号等等。
Android 的logcat日志打印error时是可以点击跳转的,为什么呢?因为用小括号包起来了,里面还有行号,用分号隔开(全是英文符号)
废话不多说,上栗子:


是不是和error日志有共同点了,就是(MainActivity.java:23)有下划线,是可以点击跳转的,如何做到?文本拼接(废话)。

看源码拼接,当然了我只是举个栗子,大家信息拼接复杂请用Stringbuilder。

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        logd(TAG, "onCreate: ");
    }

    public static void logd(String tag, String msg) {
        StackTraceElement[] traceElements = Thread.currentThread().getStackTrace();
        StackTraceElement element = traceElements[3];
        Log.d(tag, "(" + element.getFileName() + ":" + element.getLineNumber() + "):>>> " + msg);
    }

好了,哪里调用这个方法就会打印对应位置的信息,至于为什么是获取堆栈信息中的第四个对象(数组中的3),因为第四个是我想知道的对应调用位置,大家debug看看数组结构(小白请认真学习),有一个方法调用层级关系。方法调用层级越多获取的对应位置越深,请大家自行学习相关知识。

你可能感兴趣的:(Android,Tips)