我是调试日志(在调试版本中)的粉丝,我想对我的自定义记录器类进行一些改进。理想情况下,我想创建一个基方法来记录调用类名称、方法名称和参数值。
例如,假设我有一个带有“MainActivity”类的应用程序“MyApplication”,并且我正在使用参数“bar”调用方法“foo”。我希望在 LogCat 中看到类似的内容:
D/MyApplication MainActivity foo("bar")
有没有一种方法可以获取这些信息,而无需手动传入所有这些值?我看过一些文章提到Java支持的方法,例如java.lang.invoke.MethodHandles,但我没有找到任何提到Android支持的方法。我预计必须传入参数,但自动化类名和方法名会非常好。
最佳答案
调用Thread.currentThread().getStackTrace()
可以给你StackTraceElement
当前线程的。然后您可以调用getClassName()
, getMethodName()
和 getLineNumber()
打印出类、方法和代码行。代码看起来像这样。
StackTraceElement ste = Thread.currentThread().getStackTrace()[0];
String msg = ste.getClassName() + "." + ste.getMethodName() + ":" + ste.getLineNumber();
关于java - Android 中的自动登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38404689/