如何在Java项目中的每个函数上填充log / println调用?

时间:2012-08-20 07:54:06

标签: android eclipse

我即将启动一个Android项目,目前正在查看来自互联网的一些示例代码。 但是有时候很难说哪些类正在处理哪些函数。

所以我开始填充:

Log.d(LogUtils.DEBUG_TAG + getClass().getName(), new Exception().getStackTrace()[0].getMethodName() + " starts.");

到每个功能。

我只是想知道是否有一种快速方法可以自动将此语句填充到项目中的每个函数中?

谢谢你, 乔

1 个答案:

答案 0 :(得分:2)

我将此代码用于日志。它会自动为您提供有关调用它的类和方法名称的信息。

public static void log(final String msg)
{

    final Throwable t = new Throwable();
    final StackTraceElement[] elements = t.getStackTrace();

    final String callerClassName = elements[1].getFileName();
    final String callerMethodName = elements[1].getMethodName();

   String TAG = "[" + callerClassName + "]";

   Log.d(TAG, "[" + callerMethodName + "] " + msg);

}

以下是示例:

log("Hello World");

给你:

[MainActivity.java] [onCreate] Hello World

现在您看到使用 onCreate 方法从 MainActivity.java 文件调用该方法。

  

我只是想知道是否有一种快速方法来自动填充此声明   到项目中的每个功能?

不需要手动添加。但是,您可以在我上面的方法中使用布尔变量来打开/关闭日志。

可以找到完整的源代码here