0

Log.d および Log.e の出力中に現在のメソッドの名前を出力するマクロを作成したいと考えています。現時点では、ハードコードされた文字列内にメソッド名を入力するだけですが、将来メソッド名が変更された場合、各文字列を検索して置換する必要があるため、これは明らかに非効率的です。

この投稿に示されているように、 getMethodName() を使用していることを認識しています。

Javaでメソッド名を取得する方法

これも有望に見えます:

ヘルパー拡張メソッドによるデバッグ

SO に関するこれらの投稿は数え切れないほどありますが、実行時のパフォーマンスにあまり影響を与えないデバッグ目的の最善の方法を見つけたいと思います。私は Eclipse を使用しているので、その IDE でうまく機能するソリューションを見つけたいと思います。

4

2 に答える 2

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();
        }
    }
于 2013-06-12T20:51:12.277 に答える
0

これは、上記のコメントで言及したシンプルでありながら非常に便利な Eclipse プラグインです:ダウンロード プラグイン

これはインクリメンタル ビルダーであるため、典型的なビルド時間は数秒単位で測定されます。<buildCommand>次の名前の新しいビルダーとして .project ファイルに追加します。

<name>org.pskink.logger.builder</name>

<buildSpec>リストの最後のビルダーにする必要があります

インストール:フォルダにコピーしてpluginsEclipseを再起動するだけです

于 2013-06-19T05:16:24.893 に答える