Android TipsAndroid开发经验谈Android开发

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

2018-02-26  本文已影响90人  IT平头哥

不管是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看看数组结构(小白请认真学习),有一个方法调用层级关系。方法调用层级越多获取的对应位置越深,请大家自行学习相关知识。

上一篇下一篇

猜你喜欢

热点阅读