如何在Android / Java中获取调试输出的方法名称?

时间:2013-06-12 19:51:02

标签: java android debugging methods

我想创建一个在Log.d和Log.e输出期间打印出当前方法名称的宏。现在我只需在硬编码字符串中输入方法名称,但如果方法名称在将来发生变化,这显然效率低下,因为每个字符串都需要搜索和替换。

我知道如本帖所示使用getMethodName():

How to get method name in Java

这个看起来也很有希望:

Debugging with helper extension method

在SO上有无数这些帖子,但我想找到最好的调试方式,不会对运行时性能造成太大影响。由于我使用Eclipse,我想找到一个适合该IDE的解决方案。

2 个答案:

答案 0 :(得分:4)

这就是我所知道的当前执行情况。

    Thread current = Thread.currentThread();
    StackTraceElement[] stack = current.getStackTrace();
    for(StackTraceElement element : stack)
    {
        if (!element.isNativeMethod()) {
            String className = element.getClassName();
            String fileName = element.getFileName();
            int lineNumber = element.getLineNumber();
            String methodName = element.getMethodName();
        }
    }

答案 1 :(得分:0)

这是我在上面的评论中提到的一个简单但非常有用的eclipse插件:download plugin

它是一个增量构建器,因此典型的构建时间以秒为单位进行测量。将其作为名为

的新构建器<buildCommand>添加到.project文件中
<name>org.pskink.logger.builder</name>

它应该是<buildSpec>列表

中的最后一个构建器

安装:只需将其复制到plugins文件夹并重启eclipse

即可