日々精進

新しく学んだことを書き留めていきます

呼び出されたクラス、インスタンスのHash値、メソッド名をログに出すメソッドを実装する

ライフサイクルイベントがどんな順番で呼ばれているかなど調べるときに、メソッドにログを仕込むことは良くある。これを簡単に実装するには以下のようにする。getStackTrace()[3]の3の理由は0,1にはVMやthreadのメソッド名が入っているため。

public class MyUtils {
    public static void log(Object obj) {
        Log.d(obj.getClass().getSimpleName(), "(" + obj.hashCode() + "):" + Thread.currentThread().getStackTrace()[3].getMethodName());
    }
}

呼び出し側は以下のような感じ。

MyUtils.log(this);

参考:

http://wada811.blogspot.com/2013/04/android-log-util.html