<>关于getStackTrace()

public StackTraceElement[] getStackTrace()

返回一个表示该线程堆栈转储的堆栈跟踪元素数组。如果该线程尚未启动或已经终止,则该方法将返回一个零长度数组。如果返回的数组不是零长度的,则其第一个元素代表堆栈顶,它是该序列中最新的方法调用。最后一个元素代表堆栈底,是该序列中最旧的方法调用。

<>android/java 调用栈

将以下代码加入被调用的函数中即可
for (StackTraceElement i : Thread.currentThread().getStackTrace()) { System.out
.println("TAG " +i); }
<>Android简单日志封装,类名+方法名为Tag

Android的日志类使用方式一般为
Log.e(TAG,msg)

Tag值的命名一般都让人头疼,常见的做法是将Tag设为类名,但每次要打log都得给类设置一个TAG变量,写着很烦人。此篇的目的便是解决此问题,将TAG的命名抽取出来,我们只需要关心Log的msg即可。
public class LogUtils { public static void d(String msg) { Log.e(getCallerInfo(
), msg); } private static String getCallerInfo() { StackTraceElement[]
stackTrace= Thread.currentThread().getStackTrace(); //0
VMStack.getThreadStackTrace //1 Thread.getStackTrace //2 LogUtil.getCallerInfo
//3 LogUtil.e //4 Caller StackTraceElement caller = stackTrace[4]; return caller
.getClassName() + " " + caller.getMethodName() + " " + caller.getLineNumber(); }
}
其他级别日志类似补充即可,使用方法:
LogUtils.d("hello world!")

技术
今日推荐
下载桌面版
GitHub
百度网盘(提取码:draw)
Gitee
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:766591547
关注微信