美文网首页Android TipsAndroid开发经验谈Android开发
高逼格Log日志,可以导航跳转的log

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

作者: IT平头哥 | 来源:发表于2018-02-26 16:43 被阅读90次

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

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

    CSDN中文章作者hnsugar是我,发了多个地方。

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

    image 是不是和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);
    }</pre>
    

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

    相关文章

      网友评论

        本文标题:高逼格Log日志,可以导航跳转的log

        本文链接:https://www.haomeiwen.com/subject/zkbyxftx.html