Throwableインスタンスを生成してスタックトレースを取得します。
パフォーマンスへの影響は大きいので、常時出力はしない方がよいです。
private void methodA() { dbg("test"); } private static void dbg(String msg) { StackTraceElement[] stack = new Throwable().getStackTrace(); String className = stack[1].getClassName(); String method = stack[1].getMethodName(); int line = stack[1].getLineNumber(); StringBuilder buf = new StringBuilder(60); buf.append(msg) .append("[") // sample.package.ClassName.methodName:1234 .append(className).append(".").append(method).append(":").append(line) .append("]"); android.util.Log.d("tag", buf.toString()); }
ログメソッドの呼び出し元の情報を表示します。
# スタックトレースからの取得なので、メソッドスタックを意識する必要はあります。
下記のような出力結果になります。
11-26 07:16:43.419: E/tag(649): test[yuki.test.IncludeTestActivity.methodA:2]
以上です。